如何从PHP数组中显示多个谷歌地图标记?

时间:2012-10-31 13:40:41

标签: php javascript google-maps google-maps-api-3

我正在尝试在包含lat&amp ;;的PHP数组中在Google地图上显示标记。很长的价值观。

目前,PHP数组看起来像这样:

Array
(
[0] => Array
    (
        [0] => 55.8490116, -4.222272800000042
        [1] => 54.5979369, -7.274279400000069
    )

[1] => Array
    (
        [0] => 55.8490116, -4.222272800000042
    )

)
然后我将这个数组添加到PHP上的JS数组中,如下所示:

<script type="text/javascript">
var markers = <?php echo $myarray; ?>;
</script>

然后在我的JS中为地图看起来像:

var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();

console.log(markers);

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

    var pos = new google.maps.LatLng(markers[1][0]);

    marker = new google.maps.Marker({
        position: pos,
        map: map
    });

    google.maps.event.addListener(marker, 'click', (function(marker, i) {

        return function() {
            infowindow.setContent(markers[1][0]);
            infowindow.open(map, marker);
        }

    })(marker, i));

}

我不知道下一步该去哪儿。我知道我的数组不会模仿Google Maps API的要求,但不确定如何更改它以适应。

由于 罗伯特

1 个答案:

答案 0 :(得分:2)

我认为你的方法的问题在于回应数组。

我尝试修复它的方法是在JS中创建一个名为markers的空数组,循环遍历PHP数组的所有值,然后将每个值附加到markers。< / p>

另请注意,PHP中有数组数组,因此您需要一个嵌套循环。

如果您需要任何代码示例,请告诉我,否则就足够了。