Здравствуйте!
Для Интернет-магазина требуется создать расчет доставки.
Есть карта на которой будут разбиты на полигоны все районы города.
У каждого района есть своя цена доставки.
Мне нужно в отдельном input ввести адрес доставки (в корзине перед оформлением), где я в результате получу стоимость доставки по введеному адресу.
Эту сумму я хочу отправлять вместе с заказом.
Коротко если говорить, вот такая у меня задача.
Ни одного ИМ я не смог найти в сети, где есть аналог. Либо километраж, либо просто балуном стоимость подсвечивается при наведении что ни как не влияет на код который нахиодится выше карты.
С документацией разбирался, но побоялся что либо будет сделать очень проблемно (касательно меня), либо пока нет технической возможности.
Есть уже наброски кода, но столкнулся с трудностью которую не могу победить.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>click demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://api-maps.yandex.ru
</head>
<body>
<p>Yet one more Paragraph</p>
<div id="YMapsID" class="MapInner" style="width:600px;height:400px"></div>
<script type="text/javascript">
/* При успешной загрузке API выполняется
соответствующая функция */
ymaps.ready(function () {
var myMap = new ymaps.Map("YMapsID", {
// Центр карты
center: [56.83689036159881,60.607
// Коэффициент масштабирования
zoom: 12
});
// Добавление стандартного набора кнопок
myMap.controls.add("mapTools")
// Добавление кнопки изменения масштаба
.add("zoomControl")
// Добавление списка типов карты
.add("typeSelector");
var pol = {};
ymaps.geoXml.load('http://maps.yandex.ru/exp
pol = res.geoObjects;
//balloonopen
pol.events.add('balloonopen', function (obj) {
alert(obj.originalEvent.t
});
myMap.geoObjects.add(res.geoObjects);
});
//Найти адрес
var myGeocoder = ymaps.geocode('Екатеринбург Ленина 1');
myGeocoder.then(
function (res) {
var nearest = res.geoObjects.get(0);
var name = nearest.properties.get('name');
nearest.properties.set('iconContent', name);
nearest.options.set('preset', 'twirl#redStretchyIcon');
//Поставить балун
myMap.geoObjects.add(res.geoObjects);
});
//Определить деск у зоны куда попад балун и тем самым получить сумму доставки
var m = {};
$( "p" ).click(function()
{
// Создание метки
var myPlacemark = new ymaps.Placemark(
// Координаты метки
[56.80613185317287,60.54687833870205], {
/* Свойства метки:
- контент значка метки */
iconContent: "Метка",
// - контент балуна метки
balloonContent: "Контент"
}, {
/* Опции метки:
- флаг перетаскивания метки */
draggable: true,
/* - показывать значок метки
при открытии балуна */
hideIconOnBalloonOpen: false
}
);
// Добавление метки на карту
m = myPlacemark;
myMap.geoObjects.add(myPlacemark);
});
});
</script>
</body>
</html>
Я подгружаю заранее созданную карту с отмеченными районами и стоимостью. Я добавляю адрес, но затрудняюсь вызвать такое событие которое сможет автоматический перехватить активный полигон в который попадает метка и получить описание где есть стоимость для выноса за пределы карты.
Ссылка на карту: http://maps.yandex.ru/?um
Такую задачу реально реализовать?
Или возможно есть другие варианты реализации моей задачи?
Заранее благодарен.