Калькулятор доставки автомобилем и общ. транспортом
by Constantine Buhacker
HTML
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<div id="map"></div>
<div id="viewContainer"></div>
CSS
html,
body,
#map {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
JavaScript
ymaps.ready(['DeliveryCalculator']).then(function init() {
var myMap = new ymaps.Map('map', {
center: [55.750625, 37.626],
zoom: 10,
type: 'yandex#map',
controls: []
}),
searchStartPoint = new ymaps.control.SearchControl({
options: {
useMapBounds: true,
noPlacemark: true,
noPopup: true,
placeholderContent: 'Откуда (адрес)',
size: 'large',
float: 'left'
}
}),
searchFinishPoint = new ymaps.control.SearchControl({
options: {
useMapBounds: true,
noCentering: true,
noPopup: true,
noPlacemark: true,
placeholderContent: 'Куда (адрес)',
size: 'large',
float: 'left'
}
}),
calculator = new ymaps.DeliveryCalculator(myMap),
routeTypeSelector = new ymaps.control.ListBox({
data: {
content: 'Способ сопровождения'
},
items: [
new ymaps.control.ListBoxItem({
data: {
content: "Автомобилем"
},
state: {
selected: true
}
}),
new ymaps.control.ListBoxItem({
data: {
content: "Пешком"
}
})
],
options: {
itemSelectOnClick: false,
float: 'left'
}
}),
// Получаем прямые ссылки на пункты списка.
autoRouteItem = routeTypeSelector.get(0),
masstransitRouteItem = routeTypeSelector.get(1);
// Подписываемся на события нажатия на пункты выпадающего списка.
autoRouteItem.events.add('click', function(e) {
changeRoutingMode('auto', e.get('target'));
});
masstransitRouteItem.events.add('click', function(e) {
changeRoutingMode('masstransit', e.get('target'));
});
myMap.controls.add(searchFinishPoint);
myMap.controls.add(searchStartPoint);
myMap.controls.add(routeTypeSelector);
searchStartPoint.events
.add('resultselect', function(e) {
var results = searchStartPoint.getResultsArray(),
...