Создание веб-службы геокодирования / gazetteer?

14

Я хотел бы написать веб-сервис геокодирования для генеалогии в Java. Поскольку это для генеалогии, мне не нужно спускаться до уровня улицы. Мне нужно только спуститься в округ.

Глядя на данные генеалогии, имена с ошибками очень распространены. Люди также используют много нестандартных сокращений. Например, для округа Балтимор может выглядеть так:

  1. Балтимор
  2. Округ Балтимор
  3. Балтимор Ко
  4. Балтимор Cty
Джей Аскрен
источник

Ответы:

10

Я не думаю, что этот вопрос явно географический, потому что вас интересуют только имена, поэтому вы можете задать его в Stack Overflow . Вы можете ответить на свой вопрос с двумя частями информации: штат и исправленное название округа. Чтобы выполнить исправления, вы, вероятно, захотите использовать расстояние Левенштейна ( пример и реализация Java ), чтобы сопоставить нечеткие данные с исправленными значениями.

SCW
источник
+1 Это наверное правда. Левенштейн выглядит как хорошее место для начала, и похоже, что Postgres даже поддерживает его. Благодарю.
Джей Аскрен
Я думаю, что объединение расстояния Левенштейна с данными из Geonames ( geonames.org ) может работать для меня. Благодарю.
Джей Аскрен
5

Служба геокодирования нуждается в данных о географической геометрии, соответствующем справочнике (для обработки имен и альтернатив имен) и пользовательском интерфейсе (для обеспечения поиска). Для обратного геокодера вам нужно добавить валидатор топологии. Для Java естественным выбором будет JTS Topology Suite с открытым исходным кодом: http://www.vividsolutions.com/jts/jtshome.htm

Геометрию округа для Соединенных Штатов можно найти в переписи: http://www.census.gov/geo/www/cob/co2000.html

Чтобы начать работу с бюллетенем, у Совета по географическим названиям США есть база данных: http://geonames.usgs.gov/

Создание надежной базы данных Gazetteer и алгоритмы ткачества, которые допускают приблизительные результаты поиска, являются трудной частью.

Гленнон
источник
Алгоритмы - это то, что я ищу.
Джей Аскрен
Запросы об алгоритмах семантического сходства могут иметь больше респондентов на главном сайте стекового потока.
Гленнон
1

У Google есть хороший API для геокодирования , если вы можете следовать их условиям обслуживания. Основное демо можно найти здесь .

Использование их услуг имеет некоторые ограничения, но результат является интуитивно понятным, быстрым, точным и знакомым большинству пользователей. Это позволит вам сосредоточиться на разработке генеалогической части вашего сервиса.

Адам Матан
источник
Я действительно хотел бы разместить все в доме и не зависеть от внешнего API.
Джей Аскрен
Итак, вы ищете лицензированную базу геокодирования с открытым исходным кодом?
Адам Матан