2014-10-27 98 views
1

我將我的數據存儲到一個php數組,並試圖將它傳遞給javascript以獲取google地圖顯示php數組中的所有點。波紋管是PHP代碼(簡化的和谷歌地圖的JavaScript代碼。將PHP數組傳遞給Google地圖標記(Javascript)

----- PHP CODE --------

foreach(json_decode($response)->data as $item){ 
$name= $item->user->name; 
    $latitude = $item->latitude; 
    $longitude = $item->longitude; 
$Array[$count] = array('name'=>$name,'lat'=>$latitude, 'long'=>$longitude, 'rgb'=>$count); 
$js_array = json_encode($Array); 
$count++;} 

-----的javascript

<script type="text/javascript"> 
var locations = <?php echo $js_array;?>;  
var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(-33.92, 151.25), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var infowindow = new google.maps.InfoWindow(); 

var marker, i; 

for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 
} 

修訂JAVASCRIPT

var locations = <?php echo json_encode($js_array);?>; 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(<?php echo $latitude;?>, <?php echo $longitude;?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var infowindow = new google.maps.InfoWindow(); 

var marker, i; 

for (i = 0; i < locations.length; i++) { 
console.log(locations[i].lat); 
    marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i].lat, locations[i].long), 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
    return function() { 
     infowindow.setContent(locations[i].name); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 
} 

+0

只有json_encode循環後的最後一個數組。什麼部分不能工作,或者你有什麼具體問題? – charlietfl 2014-10-27 03:03:21

+0

地圖顯示,但沒有任何標記顯示出來 – user2423476 2014-10-27 03:05:02

+0

首先在控制檯中查看,可能會引發錯誤。你沒有引用lat/lng的屬性,即'locations [i] .lat'和'locations [i] .long' – charlietfl 2014-10-27 03:07:50

回答

0

在您更新的JavaScript中,您需要刪除json_encode(已經存在於PHP中)。你做了兩次。