Добрый день, возникла следующая проблема. При создании двух калькуляторов доставки на одной странице, тот, который подгружается последним работает корректно, а тот, который первым не фомирует маршрут по запросу в блоке запроса.
ymaps.ready(['DeliveryCalculator']).then(function init () { myMap = new ymaps.Map('tab-2', { center: [55.149402, 36.623880], zoom: 12, type: 'yandex#map', controls: [] }), searchFinishPoint = new ymaps.control.SearchControl({ options: { useMapBounds: true, noCentering: true, noPopup: true, noPlacemark: true, placeholderContent: 'Адрес конечной точки', size: 'large', float: 'none', position: { left: 10, top: 14 } } }), calculator = new ymaps.DeliveryCalculator(myMap); calculator.setStartPoint([55.149402, 36.623880]); myMap.controls.add(searchFinishPoint); 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); } }); });
второй код
ymaps.ready(['DeliveryCalculator_2']).then(function init () { mapMsc = new ymaps.Map('tab-1', { center: [55.814842, 37.777817], zoom: 12, type: 'yandex#map', controls: [] }), searchFinishPoint1 = new ymaps.control.SearchControl({ options: { useMapBounds: true, noCentering: true, noPopup: true, noPlacemark: true, placeholderContent: 'Адрес конечной точки', size: 'large', float: 'none', position: { left: 10, top: 14 } } }), calculator = new ymaps.DeliveryCalculator_2(mapMsc); calculator.setStartPoint([55.814842, 37.777817]); mapMsc.controls.add(searchFinishPoint1); searchFinishPoint1.events .add('resultselect', function (e) { var results1 = searchFinishPoint1.getResultsArray(), selected1 = e.get('index'), point1 = results1[selected1].geometry.getCoordinates(); // Задаем конец маршрута. calculator.setFinishPoint(point1); }) .add('load', function (event1) { // По полю skip определяем, что это не дозагрузка данных. // По getResultsCount определяем, что есть хотя бы 1 результат. if (!event1.get('skip') && searchFinishPoint1.getResultsCount()) { searchFinishPoint1.showResult(0); } }); });
Я так понимаю, что обе карты пытаются запрашивать одинаковый результат из поиска, непонятно, что именно требуется поставить как уникальный идентификатор.