我创建了一个网站,根据用户的搜索显示不同的位置。这些位置由我们之前在数据库中添加的邮政编码标识。但是,我想在这些位置添加带有标记的Google地图。我的计划是当用户点击特定位置的详细信息时,会弹出带有标记的地图。所以我用谷歌地图的代码,问题是我必须指定lat&很长时间得到标记。我想要一个能够动态获取每个位置的邮政编码和标记的代码。
注意:我使用此代码来获取地图。
<script>
var myCenter=new google.maps.LatLng(51.508742,-0.120850); //I don't want this value fixed
var marker;
function initialize()
{
var mapProp = {
center:myCenter,
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.BOUNCE
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
这在view.aspx中用于显示数据库中的邮政编码:
<%: Html.DisplayFor(modelItem => item.PostCode) %>
答案 0 :(得分:1)
您需要使用搜索API从邮政编码中获取lat和lng:
1)将此脚本添加到标题:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
2)使用此JavaScript函数通过邮政编码获取lat,lng:
function GetLocation() {
var geocoder = new google.maps.Geocoder();
var address = document.getElementById("txtAddress").value;
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
alert("Latitude: " + latitude + "\nLongitude: " + longitude);
} else {
alert("Request failed.")
}
});
};
3)然后你可以使用你的代码传递lat和lng值