#google-maps #google-maps-api-3 #geocoding #openstreetmap
#google-карты #google-maps-api-3 #геокодирование #openstreetmap
Вопрос:
Я работаю над отображением города, подобного представленному в реальном мире. Итак, как мне отобразить точное местоположение домов и других ключевых зданий ?. Должен ли я работать с обратным геокодированием, предоставляемым Google, или извлекать и обрабатывать необработанную информацию из OSM.
Комментарии:
1. Насколько точной должна быть ваша карта?
2. Вы можете использовать Overpass API для извлечения объектов, помеченных как здания , и аналогичной информации.
3. @Manuel — Чем точнее, тем лучше. Позвольте мне перефразировать это настолько точно, насколько это возможно.
Ответ №1:
Вы не можете сделать это с помощью API геокодирования Google Maps, не нарушая условия использования, в соответствии с главой 10.5 Ограничения на интеллектуальную собственность, параграфы (c) и (e). Это решение очень точное, но, к сожалению, нет возможности использовать его внутри приложения Google Maps.
Второй способ — сделать это с помощью OpenStreetMap. Но будьте осторожны! OSM — это добровольно созданная географическая карта / база данных, без гарантии получения полных данных. В известном городе проблем не будет! Но если вы хотите получить дома в маленькой деревне в Хамалае, вы не найдете домов / данных. Но самый простой способ получить данные OSM — это использовать overpass API. Вы также можете использовать API overpass через пользовательский интерфейс overpass turbo. Overpass turbo должен быть вашим выбором, потому что там вы можете указать существующие дома / данные параллельно на карте.
С помощью этого фрагмента вы получаете все здания внутри полигона:
way(poly:"50.7 7.1 50.7 7.2 50.75 7.15")["building"];
(._;>;);
out body;