2012-05-28 3 views
0

Я занимаюсь разработкой веб-страницы с помощью приложения Google Maps, и у меня проблемы с чем-то. В его основе веб-страница имеет функциональную карту (без каких-либо слоев) и панель поиска. Я новичок в программировании, поэтому, надеюсь, есть быстрое исправление, которое мне не хватает. Когда я ищу адрес, на карте есть метка. Однако карта не приближается к метке. Как я могу увеличить масштаб карты для каждого найденного адреса?Проблема поиска Карт Google с помощью меток

<script type="text/javascript"> 
    var geocoder; 
    var map; 
    function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng (55.1667, -114.4000); 
    var myOptions = { 
     zoom: 5, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
     } 
    function codeAddress() { 
     var address = document.getElementById ("address").value; 
     geocoder.geocode ({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      map.setCenter(results [0].geometry.location); 
      var marker = new google.maps.Marker({ 
       map: map, 
       position: results [0].geometry.location 
      }); 
      } 
     else { 
      alert("Geocode was not successful for the following reason: " + status); 
       } 
    }); 
          } 
</script> 

Спасибо

+0

Можете ли вы разместить свой код? – WojtekT

ответ

0

Я бы назвал две функции:

(1) центрировать карту на маркере

Либо у вас уже есть LatLng, или получить его от marker.getPosition(), с он вызывает map.setCenter(myLatLng).

(2) Установите масштаб карты

map.setZoom(zoomLevel), может быть закреплен вокруг 12 до 16, или переменной в зависимости, какой маркер она (почтовый адрес или описание города?) Эта информация может быть сохранена в переменная маркера, marker.zoomLevel.

function codeAddress() { 
    var address = document.getElementById ("address").value; 
    geocoder.geocode ({'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ map: map, 
     position: results[0].geometry.location }); 
     map.setZoom(16); 
    } 
    else { 
     alert("Geocode was not successful for the following reason: " + status); 
    } 
    }); 
} 
+0

Это полезно, но мне нужно немного больше рекомендаций. Если бы я хотел установить карту для увеличения в 8, когда я искал адрес, например, как бы код выглядел явно? и где в моем коде это все идет? – Gavin

+0

Сначала вы должны показать свой код :) –

+0

Вот мой сценарий для карты, жаль, что он не полностью организован, я попытался сделать его лучше. Следующий комментарий содержит остальную часть. \t

Смежные вопросы