Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

Найти точку пересечения между маршрутом и границами МКАД

Ищу координаты пересечения маршрута с МКАД. По аналогии с примером из песочницы "Пересечение маршрута с многоугольником на примере МКАД":
Строю мультимаршрут Получаю активный маршрут let route = this._route.getActiveRoute() Получаю первый путь маршрута let firstPath = route.model.getPaths()[0] Получаю его сегменты let segments = firstPath.getSegments(); Собираю координаты сегментов в один массив
let coords = []; for (let segment of segments) { coords = coords.concat(segment.geometry.getCoordinates()) } По аналогии с примером собираю участки путей edges
let edges = []; for (let i = 1, l = coords.length; i < l; i++) { edges.push({ type: 'LineString', coordinates: [coords[i], coords[i - 1]] }); } Создаю geoQuery и получаю элементы пересекающие МКАД
let routeObjects = ymaps.geoQuery(edges).addToMap(this._map); let boundaryObjects = routeObjects.searchIntersect(this._mkadPolygon); Получаю последний элемент (мне нужны его координаты, чтобы поставить там точку маршрута)
let lastBoundary = boundaryObjects.get(boundaryObjects.getLength() - 1);
Как получить его координаты?
P.S. Может быть, есть метод проще? Я хочу добавить эту точку в маршрут, чтобы получать параметры маршрута внутри МКАД и после МКАД отдельно.
Получение этой точки с помощью метода getClosest даёт не корректную точку. Он ищет ближайшую точку по прямой, что не есть ближайшая точка по дорогам.


Ответ

coords = lastBoundary.geometry.getCoordinates()

Комментариев нет:

Отправить комментарий