Программный поиск общеевропейских названий улиц
Вопрос
Я нахожусь в процессе разработки веб-формы для немецких и французских пользователей.В этой форме пользователям пришлось бы вводить названия улиц несколько раз.
Я хочу свести к минимуму раздражение пользователя и предложить функцию автозаполнения, основанную на распространенных названиях французских и немецких улиц.
Есть какие-нибудь идеи, где я могу получить список без роялти?
Большое спасибо,
Адам
Решение
Должны ли ваши пользователи вводить одно и то же название улицы несколько раз?Потому что вы могли бы легко предотвратить это, закодировав что-то, что предварительно заполняло поля.
Другим вариантом может быть использование вашей пользовательской базы данных в качестве ресурса.Запросите в нем все доступные названия улиц, введенные вашими существующими пользователями, и используйте это для создания предложений.Конечно, это сработало бы только в том случае, если у вас значительное количество пользователей.
[РЕДАКТИРОВАТЬ] Вы могли бы взглянуть на OpenStreetMap с их Планета.osm тупицы (или взгляните здесь для дампа, содержащего данные только по Европе).По сути, это база данных OSM со всей имеющейся у них картографической информацией, включая названия улиц.Все это в формате XML, и улицы, похоже, хранятся в виде Способы.Существуют инструменты (т.е. Осмос) чтобы извлечь данные и поместить их в базу данных, или вы могли бы написать что-нибудь, чтобы просмотреть данные и отфильтровать названия улиц для вашей базы данных.
Другие советы
Начните с http://en.wikipedia.org/wiki/Category:Streets_in_Germany и http://en.wikipedia.org/wiki/Category:Streets_in_France.Возможно, вы захотите убедиться, что авторские права Википедии не являются более защищенными, чем это было бы целесообразно для ваших нужд.
Редактировать (объединено с моим собственным комментарием): Конечно, чтобы ответить на "программную" часть вашего вопроса:выясните, как создать паутину и очистить эти страницы категорий Википедии.Вежливее всего было бы кэшировать его, вместо того чтобы нажимать на него каждый раз, когда вам нужно получить список улиц;обновления один раз в месяц или около того должно быть достаточно, поскольку информация вряд ли существенно изменится.
Вы могли бы начать с поиска имен через Google API (просто найдите, напримерlat / длинные внешние границы - Парижа и идут к центру) - но поскольку Google ограничивает использование API, вероятно, это займет очень много времени.
Однажды я связался с городом Братислава по поводу списка названий улиц, и они прислали его мне в формате XLS.Может быть, вы могли бы попробовать сделать это для ваших любимых городов.
Мне нравится предложение Тома ван Энкеворта, но я был бы немного конкретнее, просто заглянув внутрь ссылок Planet.osm, потому что большинство из них требуют использования какого-либо инструмента для работы с поддерживаемыми форматами (pbf, osm xml и т.д.)
На самом деле, взгляните на следующую ссылку http://download.gisgraphy.com/openstreetmap/
Все файлы там в формате .txt, и если вы хотите использовать только названия улиц, просто извлеките второе поле (название), и все готово.
К вашему сведению, я никак не использовал французские файлы в своем проекте, но анализ немецких файлов привел (после нормализации) к получению чуть более 380 тысяч уникальных записей (размером ~ 6 МБ)
@dusoft может что-то нащупать - может быть, кто-нибудь на правительственном уровне сможет помочь?Я не думаю, что простой список названий улиц не может быть защищен авторским правом или взиматься какие-либо авторские отчисления.Если это так, может быть, вы могли бы даже почерпнуть некоторые картографические данные из чего-то вроде TomTom?
"Deutsche Post" предлагает список со всеми названиями улиц в Германии:
http://www.deutschepost.de/dpag?xmlFile=link1015590_3877
Они не упоминают цену, но я думаю, что это не бесплатно.