librown
@librown
На-все-руки-мастер и немного кодер

Как «нарисовать» линию улицы на карте?

Привет!

У меня есть таблица с названиями улиц (такие поля: город, название улицы, координаты какой-то точки лежащей на этой улице).

Возникла задача "выделить" на карте (не важно - гугл, яндекс или osm) улицу. Понятно, что можно нарисовать polyline, но для этого же нужно знать массив координат улицы? А где их взять? Или можно автоматизировать?

Пробовал вытащить базу улиц из OSM (overpass-turbo.eu/), данных много, но качество вызывает опасение. Проверил несколько случайных тестовых улиц: в данных OSM они заведены не единой линией, а как два отрезка.

Пример того, как необходимо сделать:
3189cf62e0.png
Подскажите, в какую сторону копать?
Спасибо!
  • Вопрос задан
  • 1718 просмотров
Решения вопроса 2
AlexXYZ
@AlexXYZ
O Keep Clear O
Я подобную штуку с маршрутами делал на leaflet+mapbox. Где взять координаты улиц не подскажу, у меня были фиксированные маршруты и точки остановок, но обычно линии рисуются на отдельном слое. Т.е. нужно создать слой, выяснить координаты и рисовать на этом слое. Рисовать можно всё что угодно.

Вот примеры для mapbox+leaflet: https://www.mapbox.com/mapbox.js/example/v1.0.0/po... (с этими примерами я работал в живую)

Для google maps: https://developers.google.com/maps/documentation/j...

Вот неплохая статья про openstreet maps: webmap-blog.ru/obzors/znakomimsya-s-otkrytoj-js-bi...

Если не ошибаюсь, то leaflet работает и с openstreetmap. Если я не прав - подскажите, уберу это предложение.
Ответ написан
@pfg21
ex-турист
в общем случае, в реальности улица может быть разделена на несколько не имеющих общих точек кусков, изза некоторых естественных реалий, к примеру вот разрыв дорожного графа при сохранении названия улицы
openstreetmap.ru/#mmap=17/56.14108/47.18644

в осм обычно улица действительно представляет собой набор соединенных (или нет - смотри выше) линий, потому как разные участки улицы могут входить в разные отношения: к примеру запреты поворотов, разворотов и т.д. отношения для общественного транспорта и прочего.
кста на украине обычно все отрезки улицы собираются в одно отношение для обеспесения адекватной адресации, попробуй работать через эти отношения.

а вообще попробуй отображать все выданные оверпасом отрезки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы