Возникла проблема с народными картами, нужно нарисовать маршрут между двумя точками, сделал всё как в примере, а маршрут не строится, в чём может быть проблема? Вот привожу пример кода ниже:
YMaps.jQuery(function () {
var map = new YMaps.Map( document.getElementById("YPeoplesMapScheme")
map.setCenter(new YMaps.GeoPoint(127.547207,50.255), 17, YMaps.MapType.PMAP);
// Начальная точка маршрута.
var office = createPlacemark(new YMaps.GeoPoint(127.54655,50.2545), 'Пункт А', 'Кузнечная, 1');
office.setStyle("default#greenPoint");
map.addOverlay(office);
// Конечные точки маршрута.
var destinations = new YMaps.GeoObjectCollection(
destinations.add(createPlacemark(new YMaps.GeoPoint(127.545907,50.279504), 'Пункт Б', '123')
map.addOverlay(destinations);
map.addControl(new RoutesNavigator(office, destinations)
map.addControl(new YMaps.Zoom()
}
// Функия создания метки
function createPlacemark (geoPoint, name, description) {
var placemark = new YMaps.Placemark(geoPoint);
placemark.name = name;
placemark.description = description;
return placemark;
}
function RoutesNavigator (office, destinations) {
// Создание экземпляра модели.
this.routerModel = new YMaps.RouterEditor.RouterModel(
// Создание экземпляра редактора.
this.editor = new YMaps.RouterEditor.DragAn
viaPointHintContent: 'Перетащите точку или удалите ёё двойным щелчком',
cursorHintContent: 'Перетащите метку, чтобы создать промежуточную точку',
maxPoints: 3
}
this.cacheRoutes = [];
this.onAddToMap = function (map, position) {
this.container = YMaps.jQuery("<ul>Едем в:</ul>");
this.map = map;
this.position = position || new YMaps.ControlPosition(YMa
this.container.css({
position: "absolute",
zIndex: YMaps.ZIndex.CONTROL,
background: '#fff',
listStyle: 'none',
padding: '10px',
margin: 5,
}
// Формирование списка маршрутов.
this._generateList(
// Позиционирование элемента управления.
this.position.apply(this.container);
// Размещение на карте.
this.container.appendTo(this.map.getContainer()
map.addControl(this.editor);
}
// Удаление с карты.
this.onRemoveFromMap = function () {
this.container.remove(
this.container = this.map = null;
};
// Формирование списка маршрутов.
this._generateList = function () {
var _this = this;
// Для каждого объекта вызываем функцию-обработчик.
destinations.forEach(function (obj, index) {
// Создание ссылки на объект
var li = YMaps.jQuery("<li><a href=\"#\">" + obj.name + "</a></li>"),
a = li.find("a");
// Создание обработчика щелчка по ссылке.
li.bind("click", function () {
_this.showRoute(index);
obj.openBalloon(
return false;
}
// Слушатели событий на открытие и закрытие балуна у объекта.
YMaps.Events.observe(obj, obj.Events.BalloonOpen, function () {
a.addClass("active");
}
YMaps.Events.observe(obj, obj.Events.BalloonClose, function () {
a.removeClass("active");
}
// Добавление ссылки на объект в общий список.
li.appendTo(_this.container);
}
// Отображает маршрут до места назначения с индексом = index.
this.showRoute = function (index) {
if (!this.cacheRoutes[index]) {
this.routerModel.getRouteProvider().route({
wayPoints : [office.getGeoPoint(), destinations.get(index).getGeoPoint()]
}, successCallback, failureCallback, this);
} else {
this.routerModel.setRoute
}
function successCallback (rr) {
this.cacheRoutes[index] = rr;
this.routerModel.setRoute
}
function failureCallback (rr) {
alert("Во время построения маршрута произошла ошибка:" + rr.error);
}
};
};
}