谷歌地图API v3读取可拖动标记的新位置

4

我从MySQL数据库中用PHP获取了多个标记,为每个标记生成以下代码:

var marker28= new google.maps.Marker({position:new google.maps.LatLng(64.2,11.4),map: map,draggable: true,icon: 'slayer.png',title: '#28 slayer (64.2, 11.4)'});
google.maps.event.addListener(marker28, 'dragend', markerMoved(marker28));

var marker25

那么我有以下函数:

function markerMoved(movedMarker){
     movedMarker.title = movedMarker.position;
}

我有以下两个问题:

1)在创建标记时,“dragend”事件会在没有拖动的情况下触发,这并不是什么大问题,但是...

2)新位置没有更新,标题设置为第一个初始位置,无论我将标记拖到哪里。我尝试使用getPosition()方法,结果相同。

思路是通过向文件track.php发送(异步)GET请求,从此函数将新位置写回mysql数据库。

1个回答

7
当您调用addListener时,第三个参数需要是一个函数。您正在使用函数的结果进行调用,这样是行不通的。请尝试像这样使用:
google.maps.event.addListener(marker28, 'dragend', function() { markerMoved(marker28); } );

欲了解更多信息,请查看使用事件监听器中的闭包的API文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接