Php 使用json编码数组循环google maps标记

Php 使用json编码数组循环google maps标记,php,google-maps,json,Php,Google Maps,Json,这里真的需要帮助。我使用json_encode转换了一个数组,以便能够在下面的google地图中循环搜索结果的lats/long。如果我只使用普通标记,并且如果我回显得到的json编码数组,则映射加载良好: ["55.7171, 13.2354","55.6411, 13.2122"] 下面的Php代码(除了标记部分,忽略大部分代码,只是让您了解如何使用它) “> 脚本底部的Javascript初始化映射等。我得到一个带有此代码但没有标记的映射 <script type="t

这里真的需要帮助。我使用json_encode转换了一个数组,以便能够在下面的google地图中循环搜索结果的lats/long。如果我只使用普通标记,并且如果我回显得到的json编码数组,则映射加载良好:

["55.7171, 13.2354","55.6411, 13.2122"]
下面的Php代码(除了标记部分,忽略大部分代码,只是让您了解如何使用它)


  • “>


  • 脚本底部的Javascript初始化映射等。我得到一个带有此代码但没有标记的映射

    <script type="text/javascript">
    function initialize() {
        var markers = <?php echo json_encode($markers); ?>;
    
        var myLatLng = new google.maps.LatLng( <?php echo $area_coords; ?> );
    
        var mapOptions = {
            center:myLatLng,
            zoom:15,
            mapTypeId:google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
                mapOptions);
    
        for (i = 0; i < markers.length; i++) {
    
        var position = new google.maps.LatLng(markers[i]);
    
        var marker = new google.maps.Marker({
    
            map:map,
            position:position
    
        });
        }
    }
    
    initialize();
    
    
    函数初始化(){
    var标记=;
    var mylatng=newgoogle.maps.LatLng();
    变量映射选项={
    中心:myLatLng,
    缩放:15,
    mapTypeId:google.maps.mapTypeId.ROADMAP
    };
    var map=new google.maps.map(document.getElementById(“map_canvas”),
    地图选项);
    对于(i=0;i

    我认为这是因为您将一个字符串作为LatLng参数而不是两个浮点数传递…也许您可以更改JSON,使其: [lat,lng],[lat,lng]…]如是:

    $markers[] = [$result['latitude'],$result['longitude']];
    
    然后

    var position = new google.maps.LatLng(markers[i][0],markers[i][1]);
    

    大约15小时后才能尝试,但到时候会看到它是否有效。希望这只是stringproblem,它至少意味着代码的其余部分还可以。其余部分看起来相当标准。我还建议在创建标记时将标记添加到数组中,这将有助于清除地图和管理标记上的单击事件呃……请看这里:
    var position = new google.maps.LatLng(markers[i][0],markers[i][1]);