2012-05-28 23 views
0

我正在開發帶有Google地圖應用程序的網頁,並且遇到了一些問題。就目前而言,網頁上有一張功能性地圖(沒有任何圖層)和一個搜索欄。我是編程新手,希望有一個快速解決方案,我錯過了。 當我搜索地址時,會在地圖上放置地標。但是,地圖不會放大地標。如何讓地圖放大每個搜索到的地址?帶地標的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)中心上的標記在地圖

要麼你已經擁有的經緯度,或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