Клуб API Карт

Как сделать, чтобы карта раскрывалась через ссылку

uni-sell
23 января 2014, 15:28

 Как сделать, чтобы при клике на ссылку. Появлялась карта. А поля разъезжались.

http://hostingkartinok.com/show-image.php?id=9b95747620597bf1e0d3405905a...

 

Я удалил содержимое прежнего ява-скрипта - yamaps\miscy\amaps.map в модуле Яндекс-маp.

И поставил код скрипта из песочницы Яндекс.


Модулем и отдельным скриптом вывести не получается. Карта появилась во Views (Drupal).

Но у меня пропала возможность добавлять маркеты в админке. Нужно соединить добавленный код скрипта (вот он) 

// Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);
// Инициализация и уничтожение карты при нажатии на кнопку.
function init() {
    var myMap;
    $('#toggle').bind({
        click: function () {
            if (!myMap) {
                myMap = new ymaps.Map('map', {
                    center: [55.010251, 82.958437], // Новосибирск
                    zoom: 9
                });
                $("#toggle").attr('value', 'Скрыть карту');
            } else {
                myMap.destroy(); // Деструктор карты
                myMap = null;
                $("#toggle").attr('value', 'Показать карту снова');
            }
        }
    });
}

 

C тем, что я удалил! 

 (function ($) {
     ymaps.ready(function () {
         // Basic map class
         $.yaMaps.YamapsMap = function (mapId, options) {
             this.map = new ymaps.Map(mapId, options.init);
             this.mapId = mapId;
             this.options = options;
             this.mapListeners = this.map.events.group();
             // Export map coordinates to html element
             this.exportCoords = function (event) {
                 var coords = {
                     center: event.get('newCenter'),
                     zoom: event.get('newZoom')
                 };
                 var $storage = $('.field-yamaps-coords-' + mapId);
                 $storage.val(JSON.stringify(coords));
             };
             // Export map type to html element
             this.exportType = function (event) {
                 var type = event.get('newType');
                 var $storage = $('.field-yamaps-type-' + mapId);
                 $storage.val(type);
             };
             // Map events for export
             this.map.events
                 .add('boundschange', this.exportCoords, this.map)
                 .add('typechange', this.exportType, this.map);
             // Right top controls
             var rightTopControlGroup = [];
             // Enable map controls
             this.enableControls = function () {
                 rightTopControlGroup.push('typeSelector');
                 var mapSize = this.map.container.getSize();
                 if (mapSize[1] < 270) {
                     this.map.controls.add('smallZoomControl', {
                         right: 5,
                         top: 50
                     });
                 } else {
                     this.map.controls.add('zoomControl', {
                         right: 5,
                         top: 50
                     });
                 }
                 $.yaMaps._mapTools.unshift('default');
             };
             // Enable traffic control
             this.enableTraffic = function () {
                 var traffic = new ymaps.control.TrafficControl({
                     providerKey: 'traffic#actual',
                     shown: true
                 });
                 traffic.getProvider().state.set('infoLayerShown', true);
                 traffic.state.set('expanded', false)
                 rightTopControlGroup.unshift(traffic);
             };
             // Enable plugins
             this.enableTools = function () {
                 var mapTools = $.yaMaps.getMapTools(this);
                 this.map.controls.add(new ymaps.control.MapTools(mapTools), {
                     left: 5,
                     top: 5
                 });
                 if (rightTopControlGroup.length > 0) {
                     var groupControl = new ymaps.control.Group({
                         items: rightTopControlGroup
                     });
                     this.map.controls.add(groupControl, {
                         right: 5,
                         top: 5
                     });
                 }
             };
         };
     });
 })(jQuery);

 

0 комментариев
Подписаться на комментарии к посту