gpt4 book ai didi

javascript - 获取谷歌地图中点击标记的完整地址

转载 作者:行者123 更新时间:2023-11-28 19:08:07 25 4
gpt4 key购买 nike

您能帮我解决谷歌地图问题吗?

我需要获取所单击标记的完整地址并在 ASP 标签控件中显示地址详细信息。事实上,我一次只显示一个标记。

例如展位号或门牌号:15街道名称: 圣约瑟夫街郊区: 锡尔弗顿城市: 约翰内斯堡纬度:24.8545经度:-28.23565

我正在使用以下 JavaScript 代码来绘制 map ,并且它工作正常。

<script type="text/javascript">
var map;
var marker;
var address;

function initialize() {

var latitude = document.getElementById('<%= hdnLat.ClientID%>').value;
var longitude = document.getElementById('<%= hdnLng.ClientID%>').value;

var myLatlng = new google.maps.LatLng(longitude, latitude);
var mapOptions = {
zoom: 18,
center: myLatlng
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

marker = new google.maps.Marker({
position: myLatlng,
map: map,
draggable:true,
animation: google.maps.Animation.DROP
});
google.maps.event.addListener(marker, 'click', toggleBounce);
}

function toggleBounce() {

if (marker.getAnimation() != null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}

google.maps.event.addDomListener(window, 'load', initialize);

</script>

我正在使用以下 ASP 控件来处理 map 。

<asp:HiddenField ID="hdnLng" runat="server" />
<asp:HiddenField ID="hdnLat" runat="server" />

<div id="map-canvas" style="height:425px;"></div>

<asp:Label ID="addressStandNo" runat="server"></asp:Label>
<asp:Label ID="addressStreetName" runat="server"></asp:Label>
<asp:Label ID="addressSuburb" runat="server"></asp:Label>
<asp:Label ID="addressCity" runat="server"></asp:Label>
<asp:Label ID="addressLatitude" runat="server"></asp:Label>
<asp:Label ID="addressLongitude" runat="server"></asp:Label>
<asp:Label ID="addressPostalCode" runat="server"></asp:Label>

我只需要获取 map 上单击的标记的详细信息(地址),并将这些值分配给上面列出的 ASP 控件。

提前谢谢您。

最佳答案

您必须对标记的点击事件执行以下操作

  1. reverse geocoding使用latlng获取位置信息
  2. 在 asp 标签中显示返回的 geocodig 响应信息。引用geocoding response

//Add listener
google.maps.event.addListener(marker, "click", function(event) {
toggleBounce()
showInfo(this.position);
});

function showInfo(latlng) {
geocoder.geocode({
'latLng': latlng
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
// here assign the data to asp lables
document.getElementById('<%=addressStandNo.ClientID %>').value = results[1].formatted_address;
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
}

关于javascript - 获取谷歌地图中点击标记的完整地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31300996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com