我正在尝试让waze做出反应,并在点击时将发送回lat,lon坐标。 我设法用OpenLayers做到了这一点,但是waze没有回应。 我不知道该事件是否已经注册,如果已经注册,如果确实如此,也许鼠标不会触发事件......我怎么能找到?
以下是代码段:
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 :(得分:0)
我不知道Waze API的功能,但您可以使用MousePosition控件实现相同的功能。 只需将它的一个实例添加到地图中,它就会在地图上显示当前的lonlat。
编辑:它看起来是onInit
函数,它注册了永远不会被调用的点击回调。您的脚本有两个g_waze_config
变量,包含对onInit
函数的引用的变量仅在包含Waze脚本后声明,导致它不被调用。