放大谷歌地图API - 城市与国家不同

Son*_*oul 4 google-maps google-maps-api-3

所以...我遇到了一个可能非常常见的问题.

刚刚开始实施谷歌地图api,以下是我的代码将城市解析为lat/lang并将地图居中于那里:

function SetMapAddress(address) {  // "London, UK" for example 
  var geocoder = new google.maps.Geocoder();
  if (geocoder) {
     geocoder.geocode({ 'address': address }, function (results, status) {
     if (status == google.maps.GeocoderStatus.OK) {
        var loc = results[0].geometry.location;
        document.map.setCenter(new google.maps.LatLng(loc.lat(),loc.lng(), 13));
     }
Run Code Online (Sandbox Code Playgroud)

问题是我正在通过静态缩放(13).

如果有人输入国家名称,我想缩小更多.如果它是一个城市,我想放大更多等..

我唯一能想到的是为每个城市和国家找出合适的缩放比例,将它们存储在一些哈希值中,然后尝试找出正在使用的缩放比例,以通过适当的缩放.

也许谷歌想到了更聪明的方法?

geo*_*zip 7

地理编码器返回"推荐"视口

你可以在你的SetMapAddress函数中使用它,如下所示:

 function SetMapAddress(address) {  // "London, UK" for example 
   var geocoder = new google.maps.Geocoder();
   if (geocoder) {
      geocoder.geocode({ 'address': address }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          document.map.fitBounds(results[0].geometry.viewport);
        }
      });
   }
 }
Run Code Online (Sandbox Code Playgroud)