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



尝试了以下脚本,但最后一部分不起作用。请帮忙。

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

您应该使用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();

最新更新