Ищу координаты пересечения маршрута с МКАД.
По аналогии с примером из песочницы "Пересечение маршрута с многоугольником на примере МКАД":
Строю мультимаршрут
Получаю активный маршрут 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()
Комментариев нет:
Отправить комментарий