从浏览器字段的放置标记中获取LatLng

时间:2012-02-28 04:29:55

标签: google-maps-api-3

尝试了以下脚本,但最后一部分无效。请帮助。

// 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的应用程序的嵌入占位符中。所以无法改变那一部分。

1 个答案:

答案 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();