Калькулятор доставки автомобилем и общ. транспортом

by Constantine Buhacker

HTML

<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&quot; type=&quot;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(),
 ...