Есть файлы:
searchJS.html
<head>
<title> </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://api-maps.yandex.ru/2.1/?lang=ru" type="text/javascript"></script>
<script src="searchJS.js" type="text/javascript"></script>
<style>
html, body, #map {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<input type="button" value="Построить маршрут" onclick="calcRoute()" />
</body>
и срипт построения маршрута:
var route, ch =1;
var markers = [];
var point = [];
var myMap;
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map('map', {
center: [59.938, 30.313],
zoom: 14,
//type: 'yandex#map',
behaviors: ['scrollZoom', 'drag'],
controls: []
}),
searchStartPoint = new ymaps.control.SearchControl({
options: {
useMapBounds: true,
noPlacemark: true,
noPopup: true,
placeholderContent: 'start',
size: 'large'
}
});
myMap.controls.add(searchStartPoint);
searchStartPoint.events.add('resultselect', function (e) {
var results = searchStartPoint.getResultsArray(),
selected = e.get('index'),
point = results[selected].geometry.getCoordinates();
myMap.events.fire('click', new ymaps.Event({coordPosition:point}));
})
.add('load', function (event) {
// По полю skip определяем, что это не дозагрузка данных.
// По getRusultsCount определяем, что есть хотя бы 1 результат.
if (!event.get('skip') && searchStartPoint.getResultsCount()) {
searchStartPoint.showResult(0);
}
});
//Отслеживаем событие клика по карте
myMap.events.add('click', function (e) {
var coords = e.get('coordPosition');
if(markers.length < 10)
{
myPlacemark = new ymaps.Placemark([coords[0].toPrecision(6),coords[1].toPrecision(6)], {
// Свойства
// Текст метки
iconContent: ch
}, {
// Опции
// Иконка метки будет растягиваться под ее контент
preset: 'twirl#blueStretchyIcon'
});
markers.push(myPlacemark);
myMap.geoObjects.add(myPlacemark);
ch++;
}
else
{
alert("Вы задали максимальное количество точек");
}
});
}
function calcRoute() {
for(var i = 0, l = markers.length; i < l; i++) {
point[i] = markers[i].geometry.getCoordinates();
//alert('point[]='+point[i]);
}
ymaps.route(point, {
// Опции маршрутизатора
mapStateAutoApply: true // автоматически позиционировать карту
}).then(function (router) {
route = router;
myMap.geoObjects.add(route);
}, function (error) {
alert("Возникла ошибка: " + error.message);
});
}
Непонятно, почему метки на карте ставит. ам маршрут не строит..