在谷歌地图中显示多个标记

时间:2014-03-04 07:51:49

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

我想在Google地图上显示多个标记,我的纬度和经度将来自数据库。我已经尝试了几天,但我似乎无法使它工作。 有人可以帮帮我吗?我真的很感激。

这是我的 PHP 代码:

$result=mysql_query("SELECT latlong FROM terminal");
while($row1 = mysql_fetch_array($result, MYSQL_NUM))
     $lat[] = $row1[0];

$latlen = sizeof($lat);

$result2=mysql_query("SELECT longitude FROM terminal");
while($row2 = mysql_fetch_array($result2, MYSQL_NUM))
    $longi[] = $row2[0];


for ($x=0;$x<$latlen;$x++){
    $latitude = $lat[$x];
    $longitude = $longi[$x];
}

但问题是,我不知道循环如何对我的 JavaScript 代码起作用:

var latitude = "<?php print_r ($latitude); ?>";
var longitude = "<?php print_r ($longitude); ?>";

var locations = [
    ['Bondi Beach', latitude,longitude ], 
];

此代码仅显示1个标记。请帮忙。

2 个答案:

答案 0 :(得分:1)

这是一个关于你要做什么的很棒的教程。 https://developers.google.com/maps/articles/phpsqlajax_v3

答案 1 :(得分:0)

问题是你需要将每个标记生成为json数据 使用json_encode($ markers)

使用php文件将数组返回给json
{
    "markers": [
        {
            "latitude": 57.7973333,
            "longitude": 12.0502107,
            "title": "Angered",
            "content": "Lorem ipsum"
        },
        {
            "latitude": 57.6969943,
            "longitude": 11.9865,
            "title": "Gothenburg",
            "content": "Lorem ipsum"
        }
    ]
}

然后在jquery中使用循环来固定地图上的每个标记。

$.getJSON( 'map_data_file.php', function(data) {
    $.each( data.markers, function(i, marker) {
      //Populate each marker
    });
});

我认为你明白了这个想法