WAZE for web没有响应注册,为什么?

时间:2011-07-13 13:01:35

标签: events click onclick openlayers

我正在尝试让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");
});

}

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道Waze API的功能,但您可以使用MousePosition控件实现相同的功能。 只需将它的一个实例添加到地图中,它就会在地图上显示当前的lonlat。

编辑:它看起来是onInit函数,它注册了永远不会被调用的点击回调。您的脚本有两个g_waze_config变量,包含对onInit函数的引用的变量仅在包含Waze脚本后声明,导致它不被调用。