Это совмещение двух примеров из песочницы - мкад и расчет стоимости доставки. ymaps.route начинает работать, когда его вставишь в function init(), и то кривовато
/////////////////////////// если поиск
ptp.getDirection = function () {
if (this._route) {
this._map.geoObjects.remove(this._route);
}
////////////////////старт финиш
if (this._start && this._finish) {
var self = this,
start = this._start.geometry.getCoordinates(),
finish = this._finish.geometry.getCoordinates();
//поиск
ymaps.geocode(start, { results: 1 })
.then(function (geocode) {
var address = geocode.geoObjects.get(0) &&
geocode.geoObjects.get(0)
//////////////////////конец из прим. расчет1-2
/////////////////////////////////прокладка маршрута
ymaps.route([start, finish])
.then(function (router) {
// Объединим в выборку все сегменты маршрута.
var pathsObjects = ymaps.geoQuery(router.getPaths()),
edges = [];
// Переберем все сегменты и разобьем их на отрезки.
pathsObjects.each(function (path) {
var coordinates = path.geometry.getCoordinates();
for (var i = 1, l = coordinates.length; i < l; i++) {
edges.push({
type: 'LineString',
coordinates: [coordinates[i], coordinates[i - 1]]
});
}
});
// Создадим новую выборку, содержащую:
// - отрезки, описываюшие маршрут;
// - начальную и конечную точки;
// - промежуточные точки.
var routeObjects = ymaps.geoQuery(edges)
.add(router.getWayPoints())
.add(router.getViaPoints())
.setOptions('strokeWidth', 3)
.addToMap(myMap),
// Найдем все объекты, попадающие внутрь МКАД.
objectsInMoscow = routeObjects.searchInside(moscowPolygon),
// Найдем объекты, пересекающие МКАД.
boundaryObjects = routeObjects.searchIntersect(moscowPolygon);
// Раскрасим в разные цвета объекты внутри, снаружи и пересекающие МКАД.
boundaryObjects.setOptions({
strokeColor: '#06ff00',
preset: 'twirl#greenIcon'
});
objectsInMoscow.setOptions({
strokeColor: '#ff0005',
preset: 'twirl#redIcon'
});
// Объекты за пределами МКАД получим исключением полученных выборок из
// исходной.
routeObjects.remove(objec
strokeColor: '#0010ff',
preset: 'twirl#blueIcon'
});
} );////////////////////////////конец прокладка маршрута
//////////////////из прим. расчет1-3
////
});//конец поиск
self._map.setBounds(self.
}
////////////////////// конец старт финиш
};
///////////////////конец если поиск