Javascript 谷歌地图控件-如何持续更新

Javascript 谷歌地图控件-如何持续更新,javascript,google-maps,controls,Javascript,Google Maps,Controls,我想在谷歌地图上创建一个控件,然后在用户单击(或者更好地拖动)地图时用lat-long坐标更新它。 我首先创建了一个div元素,然后在“click”的eventlistener中删除并替换子元素: var coordDiv = document.createElement("div"); var tmp = document.createTextNode(" "); coordDiv.appendChild(tmp); coordDiv.index = 0; google.maps.event

我想在谷歌地图上创建一个控件,然后在用户单击(或者更好地拖动)地图时用lat-long坐标更新它。 我首先创建了一个div元素,然后在“click”的eventlistener中删除并替换子元素:

var coordDiv = document.createElement("div");
var tmp = document.createTextNode(" ");
coordDiv.appendChild(tmp);
coordDiv.index = 0;

google.maps.event.addListener(map, 'click', function (event) {
        var lat = event.latLng.lat();
        var lon = event.latLng.lng();

        var text = document.createTextNode(p.x.toFixed(2) + "m " + p.y.toFixed(2) + "m");
        coordDiv.removeChild(tmp);
        coordDiv.appendChild(text);
        map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(coordDiv);
        tmp = text;    
});
问题有二:

  • div在地图上移动:它不是停留在同一个位置(右下角),而是在每次单击时向上移动
  • 实际上,我希望有一个“dragstart”事件侦听器,但它看不到lat-long坐标 谢谢你的帮助
    我用这种方式解决了第一个问题:我检查div元素是否存在(使用getElementById),然后如果它已经存在,我删除它并重新创建它。。我不知道这是否是一个很好的方法,但至少它是有效的:)第二个问题仍然存在。。问题是“dragstart”eventlistener没有一个事件函数,我可以从中获取lat和long。。相反,使用“click”我有函数(event),我可以执行event.latLng.lat()…您可以使用mousemove事件更新lat&long值。创建div后,使用javascript或jquery更新其html内容。。我必须使用一些触摸或拖动事件。。。