Javascript 如何设置自动缩放&;根据经纬度自动居中,无界限?

Javascript 如何设置自动缩放&;根据经纬度自动居中,无界限?,javascript,php,jquery,css,google-maps,Javascript,Php,Jquery,Css,Google Maps,这是我的代码,我想根据地图上的标记位置调整自动缩放和居中,这样每个标记都可以在最小可能的缩放范围内看到 var mapOptions = { center: new google.maps.LatLng('<?php echo $latitude; ?>', '<?php echo $longitude; ?>'), zoom: 12, scro

这是我的代码,我想根据地图上的标记位置调整自动缩放和居中,这样每个标记都可以在最小可能的缩放范围内看到

var mapOptions = {
                    center: new google.maps.LatLng('<?php echo $latitude; ?>', '<?php echo $longitude; ?>'),  
                    zoom: 12,
                      scrollwheel: false,
                      disableDoubleClickZoom: true,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var映射选项={
中心:新的google.maps.LatLng('',''),
缩放:12,
滚轮:错误,
禁用双击缩放:真,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
希望这有帮助

var zoom = 12;
              var lat1 = '<?php echo $first_lat; ?>';
              var lat2 = '<?php echo $latitude; ?>';
              var lon1 = '<?php echo $first_lng; ?>';
              var lon2 = '<?php echo $longitude; ?>';
              var unit = 'M';



            function distance(lat1, lon1, lat2, lon2, unit) {
      var radlat1 = Math.PI * lat1/180
      var radlat2 = Math.PI * lat2/180
      var radlon1 = Math.PI * lon1/180
      var radlon2 = Math.PI * lon2/180
      var theta = lon1-lon2
      var radtheta = Math.PI * theta/180
      var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
      dist = Math.acos(dist)
      dist = dist * 180/Math.PI
      dist = dist * 60 * 1.1515
      if (unit=="K") { dist = dist * 1.609344 }
      if (unit=="N") { dist = dist * 0.8684 }
      return dist
     }
     var dis = distance(lat1, lon1, lat2, lon2, unit);

      // change value according to your needs.

       if (dis > '2.0' && dis < '3.9'){   
            zoom = 11

           } else if (dis > '4.0' && dis < '5.9'){
            zoom = 10;

           } else if (dis > '6.0' && dis < '9.9'){
            zoom = 9;

           } else if (dis > '10.0'){
            zoom = 8;

           } 



    var mapOptions = {
                 center: new google.maps.LatLng(lat1,lon1),   
                 zoom: zoom,
                   scrollwheel: false,
       disableDoubleClickZoom: true,
                 mapTypeId: google.maps.MapTypeId.ROADMAP
             };
             map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
             {
      /*
       FOLLOW YOUR OTHER MAP CODE <../> 
       */

              }
var zoom=12;
var lat1='';
var lat2='';
var lon1='';
var lon2='';
var单位='M';
功能距离(lat1、lon1、lat2、lon2、单位){
var radlat1=Math.PI*lat1/180
var radlat2=Math.PI*lat2/180
var radlon1=Math.PI*lon1/180
var radlon2=Math.PI*lon2/180
变量θ=lon1-lon2
var radtheta=Math.PI*theta/180
var dist=数学sin(radlat1)*数学sin(radlat2)+数学cos(radlat1)*数学cos(radlat2)*数学cos(radtheta);
dist=Math.acos(dist)
dist=dist*180/Math.PI
dist=dist*60*1.1515
如果(单位=“K”){dist=dist*1.609344}
如果(单位=“N”){dist=dist*0.8684}
返回区
}
var dis=距离(lat1、lon1、lat2、lon2,单位);
//根据您的需要更改价值。
如果(dis>2.0&&dis<3.9'){
缩放=11
}否则如果(dis>'4.0'和&dis<'5.9'){
缩放=10;
}否则如果(dis>'6.0'和&dis<'9.9'){
缩放=9;
}否则,如果(dis>'10.0'){
缩放=8;
} 
变量映射选项={
中心:新google.maps.LatLng(lat1,lon1),
缩放:缩放,
滚轮:错误,
禁用双击缩放:真,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
{
/*
遵循其他地图代码
*/
}

谢谢

为什么你不想使用fitBounds。。??方法..??发布的代码中没有标记。请提供一个示例来说明您的问题。我正在使用fitBounds但未在我的代码中工作,可能存在重复