谷歌地图标记

时间:2015-12-06 03:28:17

标签: asp.net google-maps

我创建了一个网站,根据用户的搜索显示不同的位置。这些位置由我们之前在数据库中添加的邮政编码标识。但是,我想在这些位置添加带有标记的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) %>

1 个答案:

答案 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值