Клуб API Карт

Геотаргетинг для интернет-магазина

Пост в архиве.

Добрый день!

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

воспользовавшись этим http://api.yandex.ru/maps/doc/jsapi/1.x/dg/concepts/geotargeting.xml

 

<script type="text/javascript" src="http://api-maps.yandex.ru/1.1/index.xml?key=ВАШ_КЛЮЧ"></script>

<div id="mosc" style="display: none;">Курьером 200руб</div>
<div id="piter" style="display: none;">Почта России</div>
<div id="unknown" style="display: none;">Почта Росиии 1 класс</div>

<script type="text/javascript">
$(document).ready(function() {
if ( !YMaps.location )
$("#unknown").show();
else if (YMaps.location.city == 'Санкт-Петербург')
$("#piter").show();
else if (YMaps.location.city == 'Москва')
$("#mosc").show();
else
$("#unknown").show();
});
</script>

 

удалось реализовать вывод различного контента для разных регионов, но хочу пойти ещё дальше и обрашаюсь за советам к бывалым,возможно ли реализовать чтобы например:

Пользователь нажимает на доставку и в всплывающем окне(это естественно не проблема) появлялась карта на которой он сам сожет выбрать свой регион и на основании этого уже выводить контент, возможно есть решения какие, пробовал подключать ipgeobase.ru но их сервер выдаёт 503 ошибку,поэтому переключился на яндекс. 

7 комментариев

Зачем чтото выбирать?

Можно использовать Geolocation API и сразу открывать карту на его местоположении.

Игорь Воробьёв
28 января 2016, 01:36

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

 

 

В чем именно возникает затруднение?

Можно хранить данные для балуна по ключу - названию города

Игорь Воробьёв
28 января 2016, 01:36

подробнее можно

думаю идти нужно в этом направлении


var dostavka = "Вид доставки";
var stoim = "цена доставки";

myPlacemarkDostavka = new ymaps.Placemark([geolocation.latitude, geolocation.longitude], {
title: 'Предпалагаемое место доставки',
address: geolocation.city,
variant: dostavka,
stoimost: stoim,
}),

осталось сделать сравнение и выводить данные для каждого города или так нельзя реализовать?

 

 

 

 

Надо сформировать HTML-содержимое контента балуна и передать его в конструктор метки.

http://api.yandex.ru/maps/jsbox/balloon_and_hint

Игорь Воробьёв
28 января 2016, 01:36

 

Это реализовано, втом то и дело что меток не будет, она появиться автоматом т.е. опредлит место человека, выведет балун и если например человек из москвы то  информация как в коде выше

 
variant: dostavka,
stoimost: stoim,

 

Совпадёт с названием населённого пункта то и пользователю выводиться информация в балуне о доставке в его город я так понимаю логика такая

Если geolocation.city = Москва

то выводим "Возможна доставка курьером"

Но как прикрутить это пока не знаю, прописываю в скрипте то неработает карта

 

 

 

 

 

 

 

 

 

Игорь Воробьёв
28 января 2016, 01:36

Всем спасибо разобрался

var dostavka = ""; var geolocation22 = geolocation.city; if ( geolocation22 == 'Москва') { dostavka = 'курьром 300 руб'; } myPlacemarkDostavka = new ymaps.Placemark([geolocation.latitude, geolocation.longitude], { title: 'Предпалагаемое место доставки', address: geolocation.city, variant: dostavka, }),