我有一个网页表单,用户可以在其中输入地址的部分 - 国家,地区,邮政编码,城市,街道,电话号码等。我需要在谷歌地图上显示该地址。我的问题是如何根据地址的详细信息使谷歌地图放大 - 用户提供的信息越多,放大的就是地图。例如,当用户仅选择国家/地区时,地图将缩放到国家/地区级别。提供街道后,地图将缩放到街道级别。
以下是我现在设置缩放级别的方法:
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);
}
});
}
答案 0 :(得分:1)
您可以使用Google Maps API Geocoder.Geometry对象返回的bounds
或viewport
个对象:
http://code.google.com/apis/maps/documentation/javascript/reference.html#GeocoderGeometry