У меня есть веб-форма, где пользователи могут вводить части адреса - страну, регион, почтовый индекс, город, улицу, номер и т. Д. Мне нужно отобразить этот адрес на карте Google. Моя проблема заключается в том, чтобы увеличить карту Google в соответствии с деталями адреса - чем больше информации предоставит пользователь, тем больше будет увеличенная карта. Например, когда пользователь выбрал только страну, карта увеличивается до уровня страны. Когда улица указана, карта увеличивается до уровня улицы.
Вот как я теперь устанавливаю уровень масштабирования:
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);
}
});
}