Привязка Яндекс карт

Sergh545
На сайте с 24.02.2011
Offline
124
1109

Гуглил, но мой вариант так и не смог найти. Мне нужна не просто одиночная карта для страницы "контакты", а совсем другое.

Задача: установить на html сайт Яндекс карты. На сайте есть справочный раздел с примерно 100 страницами разных адресов - нужно чтобы автоматом каждый адрес был отображен на карте. Соответственно, на каждой странице должен быть только один адрес на карте.

Прошу подсказать, если существует такой вариант.

Нашел что-то такого плана, но не совсем понимаю это оно или нет :)

https://github.com/just-boris/angular-ymaps

Оплата зарубежных сервисов, виртуальные бурж карты, получение и отправка SWIFT переводов. ( https://capitalist.net/reg?from=4e4c64388f )
ДП
На сайте с 23.11.2009
Offline
203
#1
vandamme
На сайте с 30.11.2008
Offline
675
#2

вам можно сделать это и без сторонних модулей, если на странице есть адрес, то его можно подставить и посредством геокодирования вывести карту:

подключить api карт и код:

<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AAAAw==" type="text/javascript"></script>
<script type="text/javascript">
YMaps.jQuery(function ()
{
var container = YMaps.jQuery("#YMapsID"),
map = new YMaps.Map(container[0]);

var point = new YMaps.GeoPoint(37.609218,55.753559); // Координаты центра Москвы
map.setCenter(point);
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ScaleLine());
map.enableScrollZoom();

var s = new YMaps.Style();
s.balloonContentStyle = new YMaps.BalloonContentStyle(
new YMaps.Template('<div style=\"margin-bottom: 10px;\"><b>$[name]</b></div><div><b>Адрес:</b> $[description]</div><div><b>Телефоны:</b> $[phone]</div>')
);

var geocoder = new YMaps.Geocoder("<?php print $node->field_adres; ?>");
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
if (geocoder.length()) {
var result = geocoder.get(0)
map.setBounds(result.getBounds());
pm = new YMaps.Placemark(result.getGeoPoint(), {style: s})
pm.name = "<?php print $title;?>";
pm.description = "<?php print $node->field_adres; ?>";
pm.phone = "<?php print $node->field_phone; ?>";
pm.setIconContent('<?php print $title ?>');
map.addOverlay(pm);
}
map.setZoom(10);
});
});
</script>

<div style="margin: 10px 0 15px 8px;"><div id="YMapsID" style="width:99%;height:400px;"></div></div>

Переменные адрес $node->field_adres, телефон $node->field_phone, заголовок $title взять из шаблона вашей cms или убрать все кроме адреса.

key= ваш ключ, лень искать код на api 2.0 который используется без ключа.

Sergh545
На сайте с 24.02.2011
Offline
124
#3

vandamme, Спасибо за попытку помочь :) Не подскажете какой пункт выбирать в моем случае или где получить нужный ключ, а то полученный ранее не работает? https://tech.yandex.ru/maps/

vandamme
На сайте с 30.11.2008
Offline
675
#4

Sergh545, только что прочитал https://tech.yandex.ru/maps/doc/jsapi/1.x/dg/tasks/quick-start-docpage/

Примечание. Для работы с JavaScript API 1.x ключи больше не нужны, то есть параметр key является необязательным. Форма получения нового ключа больше не доступна.
Sergh545
На сайте с 24.02.2011
Offline
124
#5

vandamme, то есть, у меня ничего не получится?)

irisat
На сайте с 20.03.2012
Offline
197
#6

Sergh545, держите пример работы на api2:

http://webmap-blog.ru/examples/ymap-api-v2/ymap_api2_pr2-1.html

код страницы думаю сможете просмотреть - там три с половиной строки)

Для определения центра по адресу смотрите API Яндекс.Карт Геокодер:

https://tech.yandex.ru/maps/geocoder/

"В бесплатной версии API Карт можно делать не более 25 000 запросов к геокодеру в сутки. Чтобы сократить число обращений, одинаковые ответы геокодера можно кешировать. Заодно это снизит нагрузку на ваш сайт или сервис."

25 000 запросов в сутки думаю на первое время хватит, а далее можно кешировать или в базу записывать)

LocalBitcoins (https://goo.gl/1Yxi8M) | Бот обменник (https://goo.gl/bPTaiF) - Покупка и продажа bitcoins! Биржа криптовалют №1 (https://goo.gl/6r6icz) - более 350 пар!
vandamme
На сайте с 30.11.2008
Offline
675
#7

Sergh545, это значит будет работать без ключа.

Sergh545
На сайте с 24.02.2011
Offline
124
#8

vandamme, не работает и с ключом, и без него

---------- Добавлено 27.01.2016 в 00:20 ----------

irisat, у меня много городов и Ваш вариант мне не подходит, к сожалению

irisat
На сайте с 20.03.2012
Offline
197
#9
Sergh545:
у меня много городов и Ваш вариант мне не подходит, к сожалению

Так какая разница сколько городов - центр вы получаете по запросу (по адресу) через API:

https://tech.yandex.ru/maps/doc/geocoder/desc/examples/geocoder_examples-docpage/

Запрос "город Москва, Тверская улица, дом 18, корпус 1":


https : / / geocode-maps.yandex.ru/1.x/?geocode=город Москва, Тверская улица, дом 18, корпус 1

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

При формировании страницы отправляйте запрос в Геокодер по адресу, получайте центр и формируйте карту...

vandamme
На сайте с 30.11.2008
Offline
675
#10
irisat:
Геокодер по адресу, получайте центр и формируйте карту...

ты ему код напиши, потрать свое время.

это пипец, дал рабочий код, который работает 100%, в итоге

Sergh545:
не работает

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий