2012-06-13 56 views
1

嗯,我想要一个漂亮的弹出框,但我也希望矢量可选。 如果我跳过悬停部分,它的作用像魅力,但其他:/有没有我错过了什么?悬停处于活动状态时无法选择矢量

vectors.removeAllFeatures(); 
var geojson_format = new OpenLayers.Format.GeoJSON(); 
vectors.addFeatures(geojson_format.read(data)); 
var selectCtrl = new OpenLayers.Control.SelectFeature(vectors, 
{ 
    clickout: true 
}); 
map.addControl(selectCtrl); 
selectCtrl.activate(); 
vectors.events.on({ 
    "featureselected": featureSelected 
}); 
var hover = new OpenLayers.Control.SelectFeature(vectors,{ 
    hover: true, 
    highlightOnly: true, 
    eventListeners: { 
     featurehighlighted: featureHover, 
     featureunhighlighted: featureUnHover 
    } 
}); 
map.addControl(hover); 
hover.activate(); 

回答

0

我只写了错误顺序的代码。 的map.addControl(hover); hover.activate();

map.addControl(selectCtrl); 
selectCtrl.activate(); 
vectors.events.on({ 
    "featureselected": featureSelected 
}); 

所以,现在它的工作原理之前!

0

这是否真的工作,因为我看到它的方式,一旦你有2个map.addControl创建OpenLayers.Control.SelectFeature有1不起作用。事实上,我有2层,一个公交车层和一个公交车站层。当我全部激活它们时,只有公交车层上的悬停才起作用。当我不启动buslayer的控制时,突然间公交车站层就起作用了。所以他们都单独工作。这里的问题是关于我在这里找到的唯一一个带有2条addControl行的问题。我也尝试使用autoActivate,但结果相同。

更新

它实际上intented不工作了,显然你不能创建2种控制功能。相反,您需要创建一个并将其应用于这两个图层。对此的支持是removed in 2.7 as stated in the docs2 different Vector Layers是一个很好的例子。 这花了我几天的时间才意识到。您只需在弹出窗口中选择一种方式来确定您所在的图层,并按照相应的方式进行操作。

相关问题