2012-05-28 24 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