Клуб API Карт

Прошу ликбез по API.

delfin-metrika
3 декабря 2009, 14:26

Задача: создать карты для ряда городов России с обозначением на них гостиниц и достопримечательностей. Без лишнего функционала.

C помощью конструктора научился создавать подобный рабочий код:


window.onload = function () {
        var map = new YMaps.Map(document.getElementById("YMapsID"));
        map.setCenter(new YMaps.GeoPoint(39.7365,43.585368), 13, YMaps.MapType.MAP);
        map.addControl(new YMaps.Zoom());
        map.addControl(new YMaps.ToolBar());
        map.addControl(new YMaps.TypeControl());       
        var s = new YMaps.Style();
        s.iconStyle = new YMaps.IconStyle();
        s.iconStyle.offset = new YMaps.Point(-8,-27);
        s.iconStyle.href = "ссылка";
        s.iconStyle.size = new YMaps.Point(27,26);
        YMaps.Styles.add("wizard#lbmPoint", s);
               
               
        var placemark1 = new YMaps.Placemark(new YMaps.GeoPoint(39.726008,43.576304), {style: "wizard#lbmPoint", balloonOptions: {maxWidth: 300}});
        map.addOverlay(placemark1);
        placemark1.setBalloonContent('МАРИНС');
        placemark1.openBalloon();
        var placemark2 = new YMaps.Placemark(new YMaps.GeoPoint(39.732018,43.57053), {style: "wizard#lbmPoint", balloonOptions: {maxWidth: 300}});
        map.addOverlay(placemark2);
        placemark2.setBalloonContent('ЖЕМЧУЖИНА');       
        var placemark3 = new YMaps.Placemark(new YMaps.GeoPoint(39.71301,43.589593), {style: "wizard#lbmPoint", balloonOptions: {maxWidth: 300}});
        map.addOverlay(placemark3);
        placemark3.setBalloonContent('ЗАПОЛЯРЬЕ');


var photo = new YMaps.Style();
        photo.iconStyle.href = "http://api-maps.yandex.ru/i/0.3/icons/photographer.png";
        photo.iconStyle.size = new YMaps.Point(27,26);
        YMaps.Styles.add("wizard#lbmPoint", photo);
       
        var placemark4 = new YMaps.Placemark(new YMaps.GeoPoint(39.722145,43.579478), {style: "defaultphotographerIcon", balloonOptions: {maxWidth: 300}});
        map.addOverlay(placemark14);
        placemark4.setBalloonContent('ХРАМ');
        var placemark15 = new YMaps.Placemark(new YMaps.GeoPoint(39.719954,43.578348), {style: "defaultphotographerIcon", balloonOptions: {maxWidth: 300}});
        map.addOverlay(placemark15);
        placemark15.setBalloonContent('АКВАПАРК');


Проблемы и вопросы:

1. Данный код я дожен размещать внутри тэга <head>. Проблема в том, что в панеле управления сайта данный тэг не редактируется. Он находится в шаблоне сайта. Как можно обойти данную фичу, учитывая что страниц будет много?


2. Этот код я создал с помощью конструктора. Если мне нужно добавить новую метку, придется на чистой карте ставить метку и добавлять её координаты к уже существующим. 

Можно ли подгружать отдельно созданную карту?


3. Для того, чтобы "подсветить" конкретную метку я исползую placemark.openBalloon(); , размещая его после необходимого объекта. Приходится для каждой гостиницы выставлять этот параметр.

Таким образом кол-во страниц с картами будет равно кол-ву меток(гостиниц).


Также при появлении новой гостиницы-метки, придется добавлять её координаты во все файлы.

Как можно оптимизировать этот момент?



6 комментариев
Подписаться на комментарии к посту
1. Код можно вставить и просто в страницу. Не обязательно в По другим вопросам могу вам только посоветовать отказаться от ручного формирования карт, а использовать либо серверные скрипты и хранение данных на сервере. Или возможно стоит обратить внимание на YmapML Ну и вообще надо смотреть какую CMS вы для сайта используете. Возможно уже существуют готовые модули.
какие скрипты имеются в виду и какой сервер для хренения данных?
Имеются в виду например скрипты на PHP и хранение данных в MySQL. Через админку данные по точкам заносятся в базу, а уже на сайте они выводятся в том количестве и том порядке как нужно. Т.е. не надо каждый раз все править вручную.
Т.е. без дополнительных усилий в виде программирования и БД у меня требуемых "удобств" реализовать не получится?
Думаю что вряд-ли. Если только найдете такой сервис, где можно хранить все созданные карты и модифицировать их. Но в любом случае вам придется каждый раз получать код и вставлять его на страницы своего сайта.
Вы можете создавать карты в сервисе "Мои карты" и экспортировать YMapsML, который будете добавлять у себя на карте.

Подробнее в этой новости.