Javascript 谷歌地图缩放显示所有标记

Javascript 谷歌地图缩放显示所有标记,javascript,google-maps,zooming,Javascript,Google Maps,Zooming,现在我有一个位置数组,其中一个位置将是一个标记。 第二个标记将基于用户搜索的位置 现在的代码是: function find_closest_marker( lat1, lon1 ) { var pi = Math.PI; var R = 6371; //equatorial radius var distances = []; var closest = -1; var markers = allMyLocations; for( i=0;i<marker

现在我有一个位置数组,其中一个位置将是一个标记。 第二个标记将基于用户搜索的位置

现在的代码是:

function find_closest_marker( lat1, lon1 ) {

  var pi = Math.PI;
  var R = 6371; //equatorial radius
  var distances = [];
  var closest = -1;

  var markers = allMyLocations;


  for( i=0;i<markers.length; i++ ) {

    var lat2 = markers[i][1];
    var lon2 = markers[i][2];

    var chLat = lat2-lat1;
    var chLon = lon2-lon1;


    var dLat = chLat*(pi/180);
    var dLon = chLon*(pi/180);

    var rLat1 = lat1*(pi/180);
    var rLat2 = lat2*(pi/180);

    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(rLat1) * Math.cos(rLat2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    var d = R * c;


    distances[i] = d;
    if ( closest == -1 || d < distances[closest] ) {
        closest = i;

    }



   var closestMarker = markers[closest];
   var newLat = markers[closest][1]
   var newLon = markers[closest][2]
   var b = new google.maps.LatLng(newLat, newLon);
   map.setCenter(b);
   map.setZoom(10);

   google.maps.event.addListenerOnce(map, 'tilesloaded', function(){
     ShowHideMenu();

      if($('#newPos').length==0){
    $('div.gmnoprint').last().parent().wrap('<div id="newPos" />');
     }
     //showInfoWindow(map, closest);    

    });
  }
}
函数查找最近的标记(lat1、lon1){
var-pi=Math.pi;
var R=6371;//赤道半径
var距离=[];
var最近值=-1;
var标记=所有MyLocations;
对于(i=0;i您是否尝试过此函数将基于最南端和东北角构建一个可视区域。因此,图钉将在地图中居中。如果需要,您可以使用缩放,但可以忽略它以查看它是否提供所需的结果

代码示例如下:

申报

var mybounds = new google.maps.LatLngBounds();
然后在创建标记的事件侦听器中添加

mybounds.extend(b);
最后,在事件侦听器之外

map.fitBounds(mybounds)

我试图使用你的代码,但后来我看不到标记……我哪里做错了?@Saty你能提供你迄今为止创建的代码吗?让我建议你发布一个新问题,说明你已经做了多少,这将有助于识别问题