2012-06-13 84 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是一個很好的例子。 這花了我幾天的時間才意識到。您只需在彈出窗口中選擇一種方式來確定您所在的圖層,並按照相應的方式進行操作。

相關問題