2011-07-13 75 views
0

我想讓waze作出反應,並通過點擊將我發回lat,lon座標。 我設法用OpenLayers來做到這一點,但waze沒有迴應。 我不知道事件是否已經被註冊或者沒有註冊,如果有的話,也許鼠標不會觸發事件......我怎麼知道?WAZE for web沒有響應註冊,爲什麼?

下面的代碼片段:

function onInit(){ 
var map = g_waze_map.map; 

// MY STUFF 
controls = { 
       point: new OpenLayers.Control.DrawFeature(vectors, 
          OpenLayers.Handler.Point), 
       drag: new OpenLayers.Control.DragFeature(vectors) 
      }; 

for(var key in controls) { 
    map.addControl(controls[key]); 
} 

size = new OpenLayers.Size(21,25); 
offset = new OpenLayers.Pixel(-(size.w/2), -size.h); 
icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset); 
markers = new OpenLayers.Layer.Markers("Markers"); 

map.addLayer(markers); 

map.events.register("click", map, function(e) { 

    var position = map.getLonLatFromPixel(e.xy); 
//   alert(position.lon.toFixed(3) + ', ' + position.lat.toFixed(3)); 

alert("Mouse click"); 
}); 

}

謝謝!

回答

0

我不知道Waze API會做什麼,但是您可以使用MousePosition控件實現相同的功能。 只需將它的一個實例添加到地圖上,它就會在地圖頂部顯示當前的lonlat。

編輯:看起來你的onInit功能,註冊點擊回調永遠不會被調用。您的腳本有兩個g_waze_config變量,其中包含對onInit函數的引用的變量只有在包含Waze腳本後纔會聲明,導致它不會被調用。

+0

我想我不清楚它... – Ted

+0

我需要能夠攔截點擊。一旦點擊我想在地圖上放置一個標記 – Ted

+0

你有這個webapp託管的地方,以便可以看到其他代碼?它可以是頁面上攔截事件的任何其他代碼/庫。 – igorti

相關問題