2017-05-02 13 views
-1

私は、2つの配列$lat$longGoogleマップの緯度長い配列

1 "73.0785729" 
2 "73.0785729" 
3 "73.0785729" 

$longに同じを持っています。

google.maps.event.addDomListener(window、 'load'、init);

function init() { 
    var mapOptions = { 
     zoom: 11, 
     center: new google.maps.LatLng(40.6700, -73.9400), 
     styles: [] 
    }; 
    var mapElement = document.getElementById('map'); 
    var map = new google.maps.Map(mapElement, mapOptions); 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng({{$lat}}, {{$long}}), 
     map: map, 
     title: 'Snazzy!' 
    }); 
} 

htmlspecialchars() expects parameter 1 to be string, array givenがスローされます。

+1

反復を、各LAT-長いのマーカーを作成しますペア。 – dev8080

+0

'var marker'を繰り返しますか?質問に答えてください。 –

+0

彼は各座標について言っています。マーカーを作成します。つまり、Mapオブジェクト – MackProgramsAlot

答えて

1

あなたはjson_encodeとJavaScriptにあなたのPHP件のデータを渡すことがあります。

<?php 

//Construct the array you want, assuming $lat and $long have the same length 
$markers = array(); 
foreach($lat as $i => $currentLat) { 
    $markers[] = array("lat" => $currentLat, "long" => $long[$i]); 
} 

、あなたにJavascriptを変更:あなたのアレイの上

function init() { 
    var mapOptions = { 
     zoom: 11, 
     center: new google.maps.LatLng(40.6700, -73.9400), 
     styles: [] 
    }; 
    var mapElement = document.getElementById('map'); 
    var map = new google.maps.Map(mapElement, mapOptions); 
    var markers = <?php echo json_encode($markers); ?>; //Passing the PHP values to JS 

    //Add marker to map 
    for(var i in markers) { 
     var marker = markers[i]; 
     new google.maps.Marker({ 
      position: new google.maps.LatLng(marker.lat, marker.long), 
      map: map, 
      title: 'Snazzy!' 
     }); 
    } 
} 
0
 <?php 
      $lat = ['73.0785729','73.0785729','73.0785729']; 
      $long = ['73.0785729', '73.0715769', '73.0785729']; 
     ?> 

     var lat_array = <?=json_encode($lat)?>; 
     var long_array = <?=json_encode($long)?>; 

     function init() { 
      var mapOptions = { 
       zoom: 11, 
       center: new google.maps.LatLng(40.6700, -73.9400), 
       styles: [] 
      }; 
      var mapElement = document.getElementById('map'); 
      var map = new google.maps.Map(mapElement, mapOptions); 

      // assuming that the length of lat_array and long_array are the same 
      for(var i = 0; i < lat_array.length; i++){ 
       var marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(parseFloat(lat_array[i]), parseFloat(long_array[i])), 
        map: map, 
        title: 'Snazzy!' 
       }); 
      } 

     } 
関連する問題