2012-02-28 43 views
0

尝试了以下脚本,但最后一个部分不工作。请帮助。从浏览器字段的标记中获取LatLng

//脚本类型= “文/ JavaScript的”

var myOptions = { 
    zoom: 7, 
    center: new google.maps.LatLng(-36.624345125527526,144.96459973437504), 
    mapTypeId: google.maps.MapTypeId.TERRAIN, 
    streetViewControl: false, 
    draggableCursor: 'crosshair', 
    draggingCursor: 'pointer' 
    }; 
var map = new google.maps.Map(document.getElementById('map_canvas'), 
    myOptions); 
google.maps.event.addListener(map, 'click', function(e) { 
    placeMarker(e.latLng, map); 
    }); 

map.panTo(position); 

//不工作

google.maps.event.addListener(marker, 'dragend', function() { 
    var point = marker.getPosition(); 
    document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat(); 
    document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng(); 
    }); 
脚本

//结束


尝试使用以下,但没有发生在标记拖动之后。好像听众没有听到标记的“dragend”事件。任何线索?在地图上拖动标记后获取latLng的其他选项?

// JS代码

google.maps.event.addListener(marker, 'dragend', function(e) { 
    var point = e.latLng; 
    alert(marker.e.latLng); 
}) 

//结束码

输入元件部分不是选择,因为脚本坐在一个基于web应用程序的嵌入式占位符。所以不能改变那部分。

+0

我只使用谷歌地图API的一个很少,但是你的'map.panTo(position)'看起来很奇怪。 – buck54321 2012-02-28 04:35:07

回答

1

您应该使用标记的dragend事件传递的MouseEvent对象。就像这样:

google.maps.event.addListener(marker, 'dragend', function(e) { 
    var point = e.latLng; 
    document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat(); 
    document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng(); 
    }); 

我也不知道为什么,你不只是在命名输入元素,并直接访问他们......这样的事情:

document.getElementById("latitude_input").value = point.lat(); 
document.getElementById("longitude_input").value = point.lng(); 
+0

尝试使用以下,但仍然无法正常工作。任何线索?因为脚本位于基于Web的应用程序的嵌入式占位符中,所以inpu元素部分不是一种选择。所以不能改变那部分。 google.maps.event.addListener(marker,'dragend',function(e){0}} var point = e.latLng; alert(marker.e.latLng); }); – mta 2012-03-02 01:00:18

+0

将您的实时代码发布到某处(JS小提琴会工作),这样evertone可以看一看,看看错误可能在哪里。 – andresf 2012-03-02 01:16:23