Клуб API Карт

Фиксация начальной точки при расчете расстояний

Wasilek10
14 апреля 2016, 15:05

Здравствуйте.

Подскажите что изменить в коде чтобы сделать фиксацию начальной точки отправки при расчете расстояний чтобы не вбивать ее а сразу появлялась при загрузке карты, а конечную соответственно находить через поиск или нажимать на карте.

Код прилагаю

 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
   
   
    <style>
        html, body, #map {
            width: 100%;
            height: 500px;
            padding: 0;
            margin: 0;
        }
    </style>

<script type="text/javascript">ymaps.ready(['DeliveryCalculator']).then(function init () {
    var myMap = new ymaps.Map('map', {
            center: [55.7951156781365,37.91812304455567],
            zoom: 13,
            type: 'yandex#map',
            controls: ['fullscreenControl','zoomControl','typeSelector','trafficControl']
        }),
        searchStartPoint = new ymaps.control.SearchControl({
            options: {
                useMapBounds: true,
                noPlacemark: true,
                noPopup: true,
                placeholderContent: 'Адрес начальной точки',
                size: 'large'
            }
        }),
        searchFinishPoint = new ymaps.control.SearchControl({
            options: {
                useMapBounds: true,
                noCentering: true,
                noPopup: true,
                noPlacemark: true,
                placeholderContent: 'Адрес конечной точки',
                size: 'large',
                float: 'none',
                position: { left: 10, top: 44 }
            }
        }),
        calculator = new ymaps.DeliveryCalculator(myMap);

    myMap.controls.add(searchStartPoint);
    myMap.controls.add(searchFinishPoint);

    searchStartPoint.events
        .add('resultselect', function (e) {
            var results = searchStartPoint.getResultsArray(),
                selected = e.get('index'),
                point = results[selected].geometry.getCoordinates();

            // Задаем начало маршрута.
            calculator.setStartPoint(point);
        })
        .add('load', function (event) {
            // По полю skip определяем, что это не дозагрузка данных.
            // По getResultsCount определяем, что есть хотя бы 1 результат.
            if (!event.get('skip') && searchStartPoint.getResultsCount()) {
                searchStartPoint.showResult(0);
            }
        });

    searchFinishPoint.events
        .add('resultselect', function (e) {
            var results = searchFinishPoint.getResultsArray(),
                selected = e.get('index'),
                point = results[selected].geometry.getCoordinates();

            // Задаем конец маршрута.
            calculator.setFinishPoint(point);
        })
        .add('load', function (event) {
            // По полю skip определяем, что это не дозагрузка данных.
            // По getResultsCount определяем, что есть хотя бы 1 результат.
            if (!event.get('skip') && searchFinishPoint.getResultsCount()) {
                searchFinishPoint.showResult(0);
            }
        });
});
</script>

2 комментария
Подписаться на комментарии к посту
Спасибо.
Теперь все стало понятно и доступно.
Я так рад что сразу столько ответов, столько советов, и решений поставленной такой сложной почти невыполнимой задачи.
Спасибо форумчани
Wasilek10,
Привет, у класса `DeliveryCalculator` есть метод `setStartPoint` для указания начальной точки.