GoogleMaps API рисует полигон над целым городом
Интересно, можно ли нарисовать многоугольник над целым городом с помощью GoogleMaps API V3 или V2?
Если да, то не могли бы вы привести пример, как это сделать (выберите свой любимый город :)).
У меня есть некоторые трудности с пониманием этого API.
Спасибо.
3 ответов:
Если вы хотите очертить границу города, вам понадобятся некоторые дополнительные данные, которые подскажут вам, где рисовать. Файлы формы хороши для такого рода вещей, и, как правило, легко найти бесплатные или недорогие файлы, которые предоставляют границы городов, штатов, округов, стран и т. д. Просто сделайте поиск в google для "[CityName] shape files " или что-то в этом роде.
Как только у вас есть хороший файл формы, вы можете запросить его для всех точек на границе. Вы бы тогда позвонили метод построения многоугольника с этими точками в Maps api.
Я не думаю, что можно нарисовать многоугольник вокруг границы города автоматически; вам нужно знать координаты углов, а затем вы рисуете многоугольник, соединяющий эти точки (поэтому информация о том, где находятся границы города, приходит не из Google Maps, а из вашего приложения).
Тогда вы можете создать полигон следующим образом:
var polygon = new GPolygon([ new GLatLng(lat, lon - lonOffset), new GLatLng(lat + latOffset, lon), new GLatLng(lat, lon + lonOffset), new GLatLng(lat - latOffset, lon), new GLatLng(lat, lon - lonOffset) ], "#f33f00", 5, 1, "#ff0000", 0.2); map.addOverlay(polygon);(Пример кода взят из API docs .)
Вот очень интересный (бесплатный) открытый проект для административных географических данных: http://www.openstreetmap.org
Comments