使用从我的数据库检索的数据在地图上绘制标记

时间:2013-12-28 14:58:21

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

我试图在api指南上找到解决方案,但在这里我找不到。我想要做的是使用我的数据库中存储的数据在谷歌地图(api v3)上绘制标记。 以下是我从数据库中获取数据的方法:

function getDevs(){

    $query = " SELECT id, lat, lon, login, id_devtask FROM dev WHERE online='1'";
    $result = mysql_query($query);
    $onlineDevs = array();
    $singledev = array();

    while($dev=mysql_fetch_array($result)){
        $singledev['id']=$dev['id'];
        $singledev['lat']=$dev['lat'];
        $singledev['lon']=$dev['lon'];
        $singledev['login']=$dev['login'];
        $singledev['id_devtask']=$dev['id_devtask'];
        $onlineDevs[]=$singledev;
    }       
    return $onlineDevs;
}

然后我做$ somerandomarray = getDevs();在页面上我需要这些数据。它似乎工作正常,我得到所有想要的数据。但现在我不知道如何使用所有的lats,lons和logins(这是一个名字)在我的地图上绘制标记。这是我的地图(代码来自google的api指南):

<script type="text/javascript">
  function initialize() {
    var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
    var mapOptions = {
      zoom: 4,
      center: myLatlng
    }
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);


    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title:"Hello World!"
    });
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>

你知道怎么做吗? (顺便说一句,将来我需要从标记中获取数据(可能只是id)来发布一些数据库。)

1 个答案:

答案 0 :(得分:0)

假设$ somerandomarray保存你的数据库结果然后试试这个

var jsonStr = '<?php echo json_encode($somerandomarray) ?>';
    var LatLong = JSON.parse(jsonStr);
    function initialize() {
        var myLatlng = new google.maps.LatLng(-25.363882, 131.044922);
        var mapOptions = {
            zoom: 4,
            center: myLatlng
        };

        var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

        var marker = [];

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

           var LatLong1 = new google.maps.LatLng(LatLong[i].lat, LatLong[i].lon);
           marker.push(new google.maps.Marker({position: LatLong1, map: map}));

       }
    }