谷歌地图-在Php数组中获取点,到地图上的点

谷歌地图-在Php数组中获取点,到地图上的点,php,javascript,json,google-maps,Php,Javascript,Json,Google Maps,因此,我有一个名为region.php的页面,它在标题中加载JQuery、google maps API,以及我在一个名为functions.js的文件中为我的应用程序使用的自定义JQuery函数 在region.php中,我从MySQL数据库中提取几行,并将它们存储在php数组$regions中 在我的functions.js文件中,我试图对$regions数组进行json_编码,并将其传递给我的函数,以便在google地图上播放$regions数组的所有纬度和经度。但是,我很难将Php数组转

因此,我有一个名为region.php的页面,它在标题中加载JQuery、google maps API,以及我在一个名为functions.js的文件中为我的应用程序使用的自定义JQuery函数

在region.php中,我从MySQL数据库中提取几行,并将它们存储在php数组$regions中

在我的functions.js文件中,我试图对$regions数组进行json_编码,并将其传递给我的函数,以便在google地图上播放$regions数组的所有纬度和经度。但是,我很难将Php数组转换成Javascript

我一直在关注这一点,但它似乎对我不起作用:。在他们给出的示例中,javascript似乎不能与php一起工作

有什么想法吗?(我想,如果我在这方面完全错了——将php数组转换成javascript的最佳方法是什么

Region.php $regions=get_regions()

foreach($regions作为$region):
打印$region['name'];
endforeach;
打印“”;
functions.js

$(document).ready(function() { 

    initialize_view_map(); 
}

function initialize_view_map() 
{   
    var latlng = new google.maps.LatLng(9.3939, 20.57268);
    var myOptions = {
        zoom: 2,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_view_canvas"), myOptions);

    var mapPoints = <?php echo json_encode($regions) ?>;

    $.each(mapPoints, function (i, elem) {

        var newLatLng = new google.maps.LatLng(elem.latitude, elem.longitude);

        var marker = new google.maps.Marker({
            position: newLatLng, 
            map: map, 
            draggable:false,
            animation: google.maps.Animation.DROP
        });

    });
}
$(文档).ready(函数(){
初始化视图映射();
}
函数初始化\视图\映射()
{   
var latlng=新的google.maps.latlng(9.3939,20.57268);
变量myOptions={
缩放:2,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map\u view\u canvas”),myOptions);
var映射点=;
$。每个(映射点、函数(i、元素){
var newLatLng=新的google.maps.LatLng(元素纬度、元素经度);
var marker=new google.maps.marker({
职位:newLatLng,
地图:地图,
可拖动:错误,
动画:google.maps.animation.DROP
});
});
}

从您链接到的示例:

var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
编辑2:


另一件要尝试的事情是将functions.js重命名为function.js.php,更新对它的任何引用,然后尝试-然后它将有望通过php管道运行,并在js文件中运行php代码。

你能给我们看一些你的代码吗?啊,我明白了。那么答案中是否有错误?看起来像:var arrayFromPHP=;--它们这意味着它是一个javascript变量。不,答案是正确的。他们只是没有像你一样的单独的javascript文件。你可以将javascript嵌入到php文件中,或者只是将其加载到php中的javascript变量中,然后在javascript文件中使用它(这有点像一个全局变量,尽管不是很好)嗯,我明白了。那么有更好的方法吗?hm似乎没有这样做。当我在region.php上查看源代码时,我看到了“var mapPoints={}”。尽管var_dump($regions)充满了信息。$regions是条令查询的结果。我不知道这是否与itreplace echo json_encode($regions)有关;使用echo json_encode($regions->toArray());或者如果您想尝试第二个选项(js.php),那么var mapPoints=;
var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
$regions = get_regions();

foreach($regions as $region) : 

    print $region['name']; 

endforeach;

print "<script>";
print "var mapPoints = ";
echo json_encode($regions->toArray());
print "</script>";
print "<div id='map_view_canvas' style=\"width:300px; height:300px; \"></div>";
$(document).ready(function() { 

    initialize_view_map(); 
}

function initialize_view_map() 
{   
    var latlng = new google.maps.LatLng(9.3939, 20.57268);
    var myOptions = {
        zoom: 2,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_view_canvas"), myOptions);

    $.each(mapPoints, function (i, elem) {

        var newLatLng = new google.maps.LatLng(elem.latitude, elem.longitude);

        var marker = new google.maps.Marker({
            position: newLatLng, 
            map: map, 
            draggable:false,
            animation: google.maps.Animation.DROP
        });

    });
}