Страница 1 из 1

OpenLayers проблема с AncoredBuble

Добавлено: 17 фев 2013, 11:20
khanton
Здравствуйте !

Возникает ошибка при создании AnchoredBuble:

Код: Выделить всё

                        var popup = new OpenLayers.Popup.AnchoredBubble("test",
                                map.getLonLatFromPixel(evt.xy),
                                new OpenLayers.Size(100,100),
                                "<p>example popup</p>",
                                null,
                                false);

                            this.popup = popup;
                            map.addPopup(popup);
                            OpenLayers.Event.stop(evt);
Ошибка: Uncaught TypeError: Cannot read property 'lat' of null
В интернете тысячи примеров. Уже разные варианты попробовал - не работает. При этом обычный Popup в этом месте создается без ошибок и работает и показывается.
Ну и еще один вопрос: Как задать место создания Popup, я так думал anchored именно для этого нужен ?
Если плохо читал документацию тыкните где именно :).
Спасибо.

Re: OpenLayers проблема с AncoredBuble

Добавлено: 17 фев 2013, 13:05
Denis Rykov
Можете дать ссылку на ваше демо - посмотрю.

Re: OpenLayers проблема с AncoredBuble

Добавлено: 17 фев 2013, 15:38
khanton
Посмотрите пожалуста личку.

Re: OpenLayers проблема с AncoredBuble

Добавлено: 18 фев 2013, 06:36
Denis Rykov
Посмотрел, докладываю.
  1. AnchoredBubble - deprecated, начиная с версии 2.12, хотя в вашем примере вы поступаете правильно, используя Anchored вместо AnchoredBubble;
  2. Маркеры - это устаревший функционал, не рекомендуемый для использования. Лучше использовать OpenLayers.Layer.Vector;
  3. При создании попапа вы пишите:

    Код: Выделить всё


    marker.events.register('mouseover', marker,
    function(evt) {
    var popup = new OpenLayers.Popup.Anchored("Контроллер:" + this.id, new OpenLayers.LonLat(this.y, this.x )...
    То есть в данном случае this ссылается на объект класса OpenLayers.Marker, но у данного объекта нет ни свойства x, ни свойства y. Координаты маркера доступны через свойство lonlat
Я набросал небольшой пример работоспособных попапов на базе маркеров в jsfiddle - ДЕМО.

Re: OpenLayers проблема с AncoredBuble

Добавлено: 18 фев 2013, 08:05
khanton
Денис, большое спасибо!
Действительно проблема была с координатами.