尝试了以下脚本,但最后一部分无效。请帮助。
// script type =“text / 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 :(得分:2)
您应该使用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();