javascript - 获取 Google map 上标记的坐标

标签 javascript html google-maps google-maps-api-3

我正在尝试将谷歌地图上两个标记的纬度和经度获取到一些文本框。我遵循了一些建议使用的指南:

google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("latbox").value = this.getPosition().lat();
document.getElementById("lngbox").value = this.getPosition().lng();
});

var lat = marker.getPosition().lat();
var lng = marker.getPosition().lng();

但是,我的文本框没有填充任何内容。

谷歌地图代码(模糊了键,但它工作正常,因为我可以访问 map ):

<div class="content">
<div class="map" id="map"></div>
<script>
function initMap() {
var cpe = {lat: -20.269401 , lng: 57.497840};
var pl = {lat: -20.187042 , lng: 57.498377};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: cpe
});
var marker = new google.maps.Marker({
position: cpe,
map:map,
draggable:true,
label: "P"


});

ar infowindow = new google.maps.InfoWindow({
content: "Pickup Point"
});

marker.addListener('mouseover', function() {
infowindow.open(map, marker);
});

var marker2 = new google.maps.Marker({
position: pl,
map:map,
draggable:true,
icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'

});


var infowindow2 = new google.maps.InfoWindow({
content: "Drop-Off Point"
});



marker2.addListener('mouseover', function() {
infowindow2.open(map, marker2);
});
}

google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("fromlat").value = this.getPosition().lat();
document.getElementById("fromlng").value = this.getPosition().lng();
});

google.maps.event.addListener(marker2, 'dragend', function (event) {
document.getElementById("tolat").value = this.getPosition().lat();
document.getElementById("tolng").value = this.getPosition().lng();
});
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=*****&callback=initMap">
</script>

</div>

文本框:

enter code here
<div class="row">
<div class="col-sm-3">
<fieldset>
<input type="text" id="fromlat" name="fromlat" placeholder="Pickup Latitutde(Auto)"/>
</fieldset>
<fieldset>
<input type="text" id="fromlng" name="fromlng" placeholder="Pickup Longitude(Auto)"/>
</fieldset>
</div>
<div class="col-sm-3">
<fieldset>
<input type="text" id="tolat" name="tolat" placeholder="Destination Latitude(Auto)"/>
</fieldset>
<fieldset>
<input type="text" id="tolng" name="tolng" placeholder="Destination Longitude(Auto)"/>
</fieldset>
</div>

最佳答案

你只需要在 initMap() 函数下定义你的事件函数 这是脚本代码。 请审阅

<script>
var map;
function initMap() {
var cpe = {lat: -20.269401 , lng: 57.497840};
var pl = {lat: -20.187042 , lng: 57.498377};
map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: cpe
});
var marker = new google.maps.Marker({
position: cpe,
map:map,
draggable:true,
label: "P"


});
var infowindow = new google.maps.InfoWindow({
content: "Pickup Point"
});

marker.addListener('mouseover', function() {
infowindow.open(map, marker);
});

var marker2 = new google.maps.Marker({
position: pl,
map:map,
draggable:true,
icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'

});


var infowindow2 = new google.maps.InfoWindow({
content: "Drop-Off Point"
});



marker2.addListener('mouseover', function() {
infowindow2.open(map, marker2);
});

google.maps.event.addDomListener(marker, 'dragend', function (event) {
document.getElementById("fromlat").value = this.getPosition().lat();
document.getElementById("fromlng").value = this.getPosition().lng();
});

google.maps.event.addDomListener(marker2, 'drag', function (event) {
document.getElementById("tolat").value = this.getPosition().lat();
document.getElementById("tolng").value = this.getPosition().lng();
});


}
</script>

关于javascript - 获取 Google map 上标记的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882317/

相关文章:

javascript - 如何使用javascript获取HTML正文的内容?

html - Bootstrap 4 全高卡带独立滚动列

html - 带有长文本的输入文本字段增加了 IE7 中的表格单元格

java - 从地理点转换为字符串

javascript - 不需要的递归 - 如何避免子级单击事件传递给 jquery 中的父级?

javascript - 单击按钮时有条件地渲染组件(React)

javascript - 为什么我的函数在我的 Promise 回调之前执行?

php - 从 google map api 获取机场附近位置的详细信息

ruby-on-rails - 如何将spiderfier js与gmaps4rails gem集成? (同一 lat,lng 上的多个标记)

javascript - React 如何知道组件已从 DOM 中移除?