Я хочу нарисовать район городского округа на Картах Google, используя класс Polygon и массив координат lat/lng.OSM to Google Maps polygons
OpenStreetMap предоставляет мне все данные, которые мне нужны - если я наберу название района, я могу получить полезные данные в формате OSM XML, например OSM drawn polygon of “Vecmilgravis” district in Riga, Latvia, и это data in OSM XML format.
Проблема заключается все эти node
узлов сортируются в каком-то странном порядке, так что если я просто извлечь все lat
и lng
пара и сделать координаты массива для класса Google Maps Polygon я не знаю, что я ожидаемый:
Маркеры отображаются правильно. Координированный порядок координат для них не важен, но многоугольник испорчен «из-за неправильных координат». Я копирую из данных OSM.
Итак, как мне получить (или отсортировать вручную) координаты узлов OSM в правильном порядке?
(Boundary) [отношения] (https://wiki.openstreetmap.org/wiki/Relation) в OSM состоит из [способов] (https://wiki.openstreetmap.org/wiki/ Путь). Способы содержат * упорядоченный * список [узлы] (https://wiki.openstreetmap.org/wiki/Node). Для сортировки отношений вам нужно сортировать способы, просматривая их первый и последний узел. Последовательные пути будут иметь один и тот же узел в конце и начале. – scai
@scai благодарю вас за это полезное объяснение! – artuska