2016-12-08 7 views
1

マーカーのグループの境界を設定しようとしていますが、地球地図全体を取得し続けています。私はチェックして、すべてのマーカーに適切な座標が設定されています。ここに私のコードでは、全体のITには:複数のマーカーのマップ境界を設定する

<div id="map" class="pad0 mar0 w100p"></div> 

JS

<script>      
    function initMap() { 
      var map = new google.maps.Map(document.getElementById("map"), { 
      zoom: 14, 
      mapTypeControl: false, 
      center: { 
       lat: '.$avgLat.', 
       lng: '.$avgLon.' 
      } 
      });       
      setMarkers(map); 
    } 

    var restaurants = ['.$mapData.']; 

    function setMarkers(map) { 

     var bounds = new google.maps.LatLngBounds();    

     for (var i = 0; i < restaurants.length; i++) { 
      var restaurant = restaurants[i]; 
      var layerposit = (restaurant[4] == 1 ? 999 : restaurant[3]); 
      var marker = new google.maps.Marker({ 
       position: { 
        lat: restaurant[1], 
        lng: restaurant[2] 
       }, 
       map: map,   
       title: restaurant[0], 
       zIndex: layerposit 
      }); 
      bounds.extend(marker.getPosition()); 
     } 
     map.fitBounds(bounds); 
    } 
</script> 
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBQo-k5Tta6adY9AuEi1afno8HKvac_WoQ&callback=initMap"></script> 

そして、ここでは、レンダリングされるものだ

PHP

foreach ($business AS $b) { 
     $mapData .= '["'.$b->name.'", '.$b->lat.', '.$b->lon.', '.$cnt++.', '.($b->ID != '' ? 1 : 0).'],'; 
     $avgLat = $avgLat + $b->lat; 
     $avgLon = $avgLon + $b->lon; 
     $cntEnrolled = $cntEnrolled +1; 
    } 
} 

$mapData = rtrim($mapData, ","); 
$avgLat = $avgLat/$cntEnrolled; 
$avgLon = $avgLon/$cntEnrolled; 

HTML: enter image description here

私は何が欠けていますか?犯人は、次のクラスwithingブートストラップタブだった

+0

ここで、$ avglatと$ avglonを定義していますか? – zipzit

+0

投稿されたコードは、(あなたが提供したデータで)私のために働いています[fiddle](http://jsfiddle.net/geocodezip/1baz7uhw/1/)。あなたの問題を示す[mcve]を提供してください。 – geocodezip

+0

投稿が更新されました。 @zipzit私はPHPで配列を作成した後に平均を取得します。 – santa

答えて

1

.TAB-ペイン

<div role="tabpanel" class="tab-pane fade" id="mymap"> 

はそれを取り出し、すべてのマップの問題が離れて行きます。

関連する問題