【问题标题】:how to set google map zooming lever correspond to address details如何设置谷歌地图缩放杆对应地址详情
【发布时间】:2012-03-01 05:49:40
【问题描述】:

我有一个网络表单,用户可以在其中输入地址的各个部分 - 国家、地区、邮编、城市、街道、号码等。我需要在谷歌地图上显示该地址。我的问题是如何根据地址的详细信息使谷歌地图放大 - 用户提供的信息越多,地图就越放大。例如,当用户只选择了国家时,地图会缩放到国家级别。提供街道后,地图会缩放到街道级别。

这是我现在设置缩放级别的方法:

        function UpdateAddressOnMap(sender, args) {
            var address = "";
            var zoom = 6;

            if ($("[id*='ddlCountry'] :selected").val() > 0)
                address = $("[id*='ddlCountry'] :selected").text();

            if ($("[id*='ddlRegion'] :selected").val() > 0)
                address += ", " + $("[id*='ddlRegion'] :selected").text();

            if ($("[id*='ddlDepartment'] :selected").val() > 0)
                address += ", " + $("[id*='ddlDepartment'] :selected").text();
            alert($("[id*='tbPostalCode']").val());
            if ($("[id*='tbPostalCode']").val().length > 0) {
                address += ", " + $("[id*='tbPostalCode']").val();
                zoom += 2;
            }

            if ($("[id*='tbCity']").val().length > 0) {
                address += ", " + $("[id*='tbCity']").val();
                zoom += 1;
            }

            if ($("[id*='tbNeighbourgood']").val().length > 0) {
                address += ", " + $("[id*='tbNeighbourgood']").val();
            }

            if ($("[id*='tbStreet']").val().length > 0) {
                address += ", " + $("[id*='tbStreet']").val();
                zoom += 2;
            }
            var geocoder = new google.maps.Geocoder();
            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();

                    clearMarkers();
                    showFullAddressesOnMap(latitude, longitude, address)
                    map.setZoom(zoom);
                }
            });
        }

【问题讨论】:

  • 我添加了一些代码,但不幸的是该网站无法公开访问
  • 使用免费 API 需要公开地图。即使它仍在开发中,如果它会在某个时候公开,你也可以现在将其公开以提供帮助。但是,第一个答案是正确的。

标签: google-maps-api-3


【解决方案1】:

您可以使用由 Google Maps API Geocoder.Geometry 对象返回的 boundsviewport 对象:

http://code.google.com/apis/maps/documentation/javascript/reference.html#GeocoderGeometry

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2017-04-10
    • 1970-01-01
    • 2012-04-03
    • 2013-02-27
    • 2012-07-03
    相关资源
    最近更新 更多