Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии API Яндекс Карты (Интересные решения и идеи?) |
API Яндекс Карты |
По-моему здесь как-то реализовали это, если я не ошибаюсь http://modernrealtor.ru/
|
Bondavy, $OTHER4$ будет работать только на страницах модуля, а на главной странице сайта - нет
Добавлено (10 Сен 2014, 02:13:43) Добавлено (10 Сен 2014, 02:16:45) |
Bondavy, $OTHER4$ будет работать только на страницах модуля, а на главной странице сайта - нетДобавлено (10 Сен 2014, 02:13:43) --------------------------------------------- но как загружать все адреса , не могу понять http://api.yandex.ru/maps/jsbox/2.1/geo_object_collection Добавлено (10 Сен 2014, 02:16:45) --------------------------------------------- или вручную: http://api.yandex.ru/maps/tools/constructor/ |
По-моему здесь как-то реализовали это, если я не ошибаюсь http://modernrealtor.ru/ Пока показываются не все, а только некоторые объекты: Код <script src="//api-maps.yandex.ru/2.0/?load=package.full&mode=debug&lang=ru-RU"></script> <script> ymaps.ready(init); function init(){ var geolocation = ymaps.geolocation, coords = [geolocation.latitude, geolocation.longitude], map = new ymaps.Map('map', { center: coords, zoom: 4, type: 'yandex#publicMap' };); map.controls .add('smallZoomControl'); so = new ymaps.Clusterer(); $MYINF_1$ map.geoObjects.add(so); map.balloon.open( coords, { contentHeader: ymaps.geolocation.country, contentBody: ymaps.geolocation.region };); } </script> Информер: Код ymaps.geocode('<?if($FILTER3$='за рубежом')?><?else?>$FILTER3$<?endif?><?if($OTHER1$)?><?if($FILTER3$='за рубежом')?><?else?>, <?endif?>$OTHER1$<?endif?><?if($OTHER2$)?>, $OTHER2$<?else?><?if($OTHER3$)?>, $OTHER3$<?endif?><?endif?>').then( function (res) { res.geoObjects.get(0).properties.set({clusterCaption: 'Объект № $ID$', balloonContentHeader: '$TITLE$', balloonContentFooter: '<a href="/board<?substr($ENTRY_URL$,strrpos($ENTRY_URL$,'/'))?>">объявление</a> »'};); so.add(res.geoObjects.get(0)); };); По всем модулям катастрофически не хватает полей. Но в связи с появлением seo-модуля, возможно получится сделать рокировку и одно, из задействованных ранее, изменить под широту-долготу, чтобы не использовать прямое геокодирование. В этом случае можно будет вывести информерами последних 2400 объектов (8 категорий). Выводить вставкой координат вручную не вижу смысла, так как при удалении объявления пользователем, метка останется, но поведёт на 404. |
Варианты применения API Яндекс Карт в разных модулях? Интересные решения и идеи? Всем привет! У меня не совсем стандартное применение апи. Я его использую для отображения в сети больших картинок с генеалогическими деревьями пример карты Но столкнулся с проблемой уменьшения разрешения при нарезке файла на тайлы. Загоняю картинку для нарезки на тайлы в программу подготовки слоя. нарезаю, вроде все нормально, масштабы выбираю все. Однако, исходный фал 35 мег, а на выходе все слои в сумме 12 мег и качество соответчтвенно плохое... Где может быть проблема? И буду благодарен если кто подскажет как сделать на моей "карте" метки с информацией по персонам в дереве и прочертить ветки дерева как дороги, чтоб можно было их искать по Фамилиям.... Сергей |
Цитата со всеми метками адресов после геокодирования и geoObjects, третий вариант: http://habrahabr.ru/company/yandex/blog/243665/, в клубе об этом нововведении упоминалось ранее. Подружить с системой можно, в тестовом режиме всё отрисовывается весьма шустро, и браузеры не падают, в том числе IE. Есть небольшие проблемы, но они, наверное, обходимы. |
Информер:ymaps.geocode('<?if($FILTER3$='за рубежом')?><?else?>$FILTER3$<?endif?><?if($OTHER1$)?><?if($FILTER3$='за рубежом')?><?else?>, <?endif?>$OTHER1$<?endif?><?if($OTHER2$)?>, $OTHER2$<?else?><?if($OTHER3$)?>, $OTHER3$<?endif?><?endif?>').then( function (res) { res.geoObjects.get(0).properties.set({clusterCaption: 'Объект № $ID$', balloonContentHeader: '$TITLE$', balloonContentFooter: '<a href="/board<?substr($ENTRY_URL$,strrpos($ENTRY_URL$,'/'))?>">объявление</a> »'};); so.add(res.geoObjects.get(0)); };); 1 2 3 4 5 6 7 8 9 Подскажите как правильно создать информер, в какой необходимо загрузить этот код + он будет работать на главной странице допустим доски объявлений? Спасибо Любые вопросы по системе uCoz. Качественная техническая поддержка сайтов и любые консультации
|
Информер в случайном порядке — 50 материалов, в других вариациях — 300, дальше допопции. Он будет работать, если в каком-либо поле присутствует адрес объекта, например, в $OTHER1$, тогда код информера может иметь такой вид:
Код ymaps.geocode('$OTHER1$').then (function (res) {res.geoObjects.get(0).properties.set({clusterCaption:'$ID$',balloonContentFooter:'<a href="$ENTRY_URL$">$TITLE$</a>'};); so.add(res.geoObjects.get(0));};); |
Sonor, вставил это в head главной доска объявлений:
Код <script src="//api-maps.yandex.ru/2.0/?load=package.full&mode=debug&lang=ru-RU"></script> <script> ymaps.ready(init); function init(){ var geolocation = ymaps.geolocation, coords = [geolocation.latitude, geolocation.longitude], map = new ymaps.Map('map', { center: coords, zoom: 4, type: 'yandex#publicMap' };); map.controls .add('smallZoomControl'); so = new ymaps.Clusterer(); $MYINF_1$ map.geoObjects.add(so); map.balloon.open( coords, { contentHeader: ymaps.geolocation.country, contentBody: ymaps.geolocation.region };); } </script> а этот код в информер доска объявлений - 50 материалов - в случайном порядке - 1 колонка: Код ymaps.geocode('$OTHER1$').then (function (res) {res.geoObjects.get(0).properties.set({clusterCaption:'$ID$',balloonContentFooter:'<a href="$ENTRY_URL$">$TITLE$</a>'};); so.add(res.geoObjects.get(0));};); на моем сайте примере http://versal-dubna.3dn.ru/ на главной модуля доска объявлений внизу где я хочу вывести на карте парочку объектов просто системный код без карты. Что не так делаю? буду признателен за помощь! Любые вопросы по системе uCoz. Качественная техническая поддержка сайтов и любые консультации
Сообщение отредактировал A15 - Суббота, 10 Янв 2015, 19:43:13
|
причуды со вставкой кода, добавляются лишние точка с запятой.
В первом скрипте вывода карты нужно заменить: 11 строка: };); на }); 21 строка: };); на }); --- В информере, в конце 3-й и 4-й строк, тоже самое: };); заменить на }); Также перед ул. Ленинградская д.24 нужно добавить город. Сообщение отредактировал Sonor - Суббота, 10 Янв 2015, 21:15:41
|
Sonor, спасибо. щас попробую. В идеале сделать как на этом сайте (то что нужно как говорится) http://randubna.ru/
Добавлено (10 Янв 2015, 21:45:03) Код <script src="http://api-maps.yandex.ru/2.0/?load=package.full&mode=debug&lang=ru-RU"></script> <script> ymaps.ready(init); function init(){ var geolocation = ymaps.geolocation, coords = [geolocation.latitude, geolocation.longitude], map = new ymaps.Map('map', { center: coords, zoom: 4, type: 'yandex#publicMap' }); map.controls .add('smallZoomControl'); so = new ymaps.Clusterer(); $MYINF_1$ map.geoObjects.add(so); map.balloon.open( coords, { contentHeader: ymaps.geolocation.country, contentBody: ymaps.geolocation.region }); } </script> Код ymaps.geocode('$OTHER3$').then (function (res) {res.geoObjects.get(0).properties.set({clusterCaption:'$ID$',balloonContentFooter:'<a href="$ENTRY_URL$">$TITLE$</a>'}); so.add(res.geoObjects.get(0));}); Любые вопросы по системе uCoz. Качественная техническая поддержка сайтов и любые консультации
|
Конечно, не будет работать без:
<div id="map"></div> — этот код в любое место между <body> и </body> |
Работающий вариант карты для главной странице модуля (на примере Доска объявлений):
Ставим между <head></head> Код <script src="http://api-maps.yandex.ru/2.0/?load=package.full&mode=debug&lang=ru-RU"></script> <script> ymaps.ready(init); function init(){ var geolocation = ymaps.geolocation, coords = [geolocation.latitude, geolocation.longitude], map = new ymaps.Map('map', { center: coords, zoom: 4, type: 'yandex#publicMap' }); map.controls .add('smallZoomControl'); so = new ymaps.Clusterer(); $MYINF_1$ map.geoObjects.add(so); map.balloon.open( coords, { contentHeader: ymaps.geolocation.country, contentBody: ymaps.geolocation.region }); } </script> Создаем информер Доска объявлений, материалы, 50 материалов, случайные материалы и вставляем в код информера: Код ymaps.geocode('$OTHER3$').then (function (res) {res.geoObjects.get(0).properties.set({clusterCaption:'$ID$',balloonContentFooter:'<a href="$ENTRY_URL$">$TITLE$</a>'}); so.add(res.geoObjects.get(0));}); $OTHER3$ - это полный адрес, к примеру г. Москва, ул. Полянка 32, у вас может быть любое другое поле. В данное поле при заполнении материала необходимо прописывать полный адрес с городом. Вставляем между <body></body> в любое место где должна быть карта: Код <div id="map" style="width:680px; height:400px"></div> Большое спасибо Sonor'y за помощь! Любые вопросы по системе uCoz. Качественная техническая поддержка сайтов и любые консультации
|
| |||