Если у вас есть 2 координаты, то рассмотрим вариант получения полного адреса в текстовом виде.
Полный адрес по координатам Яндекс API
Если вы уже получили координаты приступим к нашей задаче:
ymaps.ready(function(){ var myReverseGeocoder = ymaps.geocode([coordinates[0],coordinates[1]]); myReverseGeocoder.then(function (res) { console.log(res.geoObjects.get(0).properties.get('text')); }); });
Обратите внимание на параметры coordinates[0] и coordinates[1].
Где это может пригодится? Например, в оформлении заказа, когда кликаем по карте, происходит событие добавления точки placeMark.events.add (пример приведен из компонента оформления 1С-Битрикс). Стандартно он выглядит так:
if (this.propsMap.geoObjects.getLength() === 0) { placeMark = new ymaps.Placemark([coordinates[0], coordinates[1]], {}, { draggable:true, preset: 'islands#redDotIcon' }); placeMark.events.add(['parentchange', 'geometrychange'], function() { var orderDesc = BX('orderDescription'), coordinates = placeMark.geometry.getCoordinates(), ind, before, after, string; if (orderDesc) { ind = orderDesc.value.indexOf(BX.message('SOA_MAP_COORDS') + ':'); if (ind === -1) { orderDesc.value = BX.message('SOA_MAP_COORDS') + ': ' + coordinates[0] + ', ' + coordinates[1] + '\r\n' + orderDesc.value; } else { string = BX.message('SOA_MAP_COORDS') + ': ' + coordinates[0] + ', ' + coordinates[1]; before = orderDesc.value.substring(0, ind); after = orderDesc.value.substring(ind + string.length); orderDesc.value = before + string + after; } } }); this.propsMap.geoObjects.add(placeMark); }
Немного перепишем код скрипта оформления заказа:
placeMark.events.add(['parentchange', 'geometrychange'], function() { var orderDesc = BX('orderDescription'), coordinates = placeMark.geometry.getCoordinates(), ind, before, after, string; //ymaps.ready(function(){ var myReverseGeocoder = ymaps.geocode([coordinates[0],coordinates[1]]); myReverseGeocoder.then(function (res) { console.log(res.geoObjects.get(0).properties.get('text')); }); //}); });
В консоле видим полный адрес:
“Россия, Московская область, городской округ Щёлково, садовые участки”.
Немного кастомизировав компонент оформления заказа битрикса, можем добиться попадания полного адреса в поле “Адрес доставки”.
Здравствуйте. Буквально вчера читал про Js API яндекс карт, по факту нам нужно то, что вы и сделали. Но в пользовательском соглашении было условие, которое запрещало сохранение или изменение данных полученных с помощью API. Вот оно:
Пользоваться API Яндекс.Карт можно бесплатно, если соблюдать условия.Все данные должны отображаться на карте, размещённой на общедоступном сайте или в приложении. Сохранять или изменять данные нельзя, но можно кэшировать запросы к геокодеру и маршрутизатору на срок до 30 дней.
На сколько я понял согласно пользовательскому соглашение, такое использование апи яндекса в оформлении заказа запрещено. Не могли бы вы подсказать, правильно ли я все понял? И если да, то какие видите альтернативы?
Да, там действительно постоянно меняют условия использования API, как, к примеру, заблокировали доступ к отзывам на Яндекс.Маркете. Что касается карт и работы с ними, то после создания ключа в кабинете разработчика, вы всё таки сможете отправлять запросы.