OpenLayers.Layer.PointTrack хинт и клик для линии трека

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
morli
Интересующийся
Сообщения: 15
Зарегистрирован: 08 окт 2013, 16:35
Репутация: 0

OpenLayers.Layer.PointTrack хинт и клик для линии трека

Сообщение morli » 08 окт 2013, 16:44

Добрый день.
создаю трек на карте

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

function createTrack() {
 var pointLayer = new OpenLayers.Layer.Vector('xxx');
 // на самом деле от OpenLayers.Layer.Vector.Node - моего класса для баллуна

  while (i < cnt) {
    newPoint = new OpenLayers.Geometry.Point([i].lon,[i].lat);        
    pointLayer.addFeatures(new OpenLayers.Feature.Vector(
                   newPoint,
                   null,                      
                   { strokeColor: ,
                     pointRadius:3,
                     fillColor: ,
                     title: [i].hint || '',
                     label: [i].label || '',
                     labelYOffset: -15
                   }));

  var trackLayer = new OpenLayers.Layer.PointTrack("vvv");
  // на самом деле от new OpenLayers.Layer.PointTrack.Track - моего класса для баллуна
  trackLayer.addNodes(pointLayer.features);      

  map.addLayers([pointLayer,trackLayer]);                   

  var selectControl = new OpenLayers.Control.SelectFeature(pointLayer);
  pointLayer.setSelectControl(selectControl); <<< for click -> Popup 
  map.addControl(selectControl);
  selectControl.activate();    

  var selectControl2 = new OpenLayers.Control.SelectFeature(trackLayer);
  trackLayer.setSelectControl(selectControl2);
  this.map.addControl(selectControl2);
  selectControl2.activate();
};

Но клик по линии трека не отрабатывается, и нет хинтика для линии трека
хотя если использовать базовый код OpenLayers, то каждая линия имеет тот же стиль, что и узел - т.е. тот же хинт.

Как побороть ситуацию?

ЗЫ при просмотре DOMa видно, что создаются два "параллельных" дива, один который и перекрывает другой - соответственно не проходит клик (не доходит событие) и нет хинта

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

Re: OpenLayers.Layer.PointTrack хинт и клик для линии трека

Сообщение Denis Rykov » 09 окт 2013, 05:25

Используйте один контрол для обоих слоёв, вот набросал пример.
Spatial is now, more than ever, just another column- The Geometry Column.

morli
Интересующийся
Сообщения: 15
Зарегистрирован: 08 окт 2013, 16:35
Репутация: 0

Re: OpenLayers.Layer.PointTrack хинт и клик для линии трека

Сообщение morli » 09 окт 2013, 15:35

спасибо
действительно нужно юзать один контрол

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

var selectControl = new OpenLayers.Control.SelectFeature([pointLayer,trackLayer]);
map.addControl(selectControl);
selectControl.activate();    

Ответить

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

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

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