OpenLayers проблема с AncoredBuble

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
khanton
Новоприбывший
Сообщения: 7
Зарегистрирован: 10 мар 2012, 19:53
Репутация: 0

OpenLayers проблема с AncoredBuble

Сообщение 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 именно для этого нужен ?
Если плохо читал документацию тыкните где именно :).
Спасибо.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov »

Можете дать ссылку на ваше демо - посмотрю.
Spatial is now, more than ever, just another column- The Geometry Column.
khanton
Новоприбывший
Сообщения: 7
Зарегистрирован: 10 мар 2012, 19:53
Репутация: 0

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

Сообщение khanton »

Посмотрите пожалуста личку.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение 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 - ДЕМО.
Spatial is now, more than ever, just another column- The Geometry Column.
khanton
Новоприбывший
Сообщения: 7
Зарегистрирован: 10 мар 2012, 19:53
Репутация: 0

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

Сообщение khanton »

Денис, большое спасибо!
Действительно проблема была с координатами.
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость