2010-11-16 78 views
2

我必須根據頁面上的選擇更改地圖上顯示的數據集,我想通過創建幾個標記圖層然後在它們之間切換基於用戶輸入。 出於某種原因,我無法在地圖渲染後添加圖層,看起來應該不那麼困難,因爲Drupal設置地圖的方式不同於直接的開放圖層。 我能不能得到像地圖對象在頁面加載後,在Drupal上添加和刪除標記在頁面加載

var map = Drupal.settings.openlayers.maps [「openlayers-map-auto-id-0」];

然後添加並從中刪除標記層?也許還有另一種獲得它的方法?

任何幫助表示讚賞, 克里斯 -

回答

2

Drupal的模塊的OpenLayers只存儲設置Drupal.settings.openlayers.maps

你需要的是這樣的:

var ol = $('#openlayers-map-auto-id-0').data('openlayers'); 
var max_extent = ol.openlayers.getMaxExtent(); // Or some other OpenLayers method... 
... 

實際的OpenLayers實例(以及具體地圖設置的副本)存儲與jQuery的.data()方法。當您撥打$('#map-id').data('openlayers')時,您將分別獲取與地圖設置和實際OL對象實例分別對應的mapopenlayers成員。

您可能需要考慮編寫一個OL行爲來處理您的用例 - 查看Drupal OpenLayers模塊提供的默認行爲以瞭解它的工作原理。