从数据库中获取数据并使用它在Google地图中制作标记

时间:2012-02-23 14:17:08

标签: javascript google-maps mysql-connect

我是Javascript的新手。我想从MySQL获取lat-long(超过100)并使用它在Google Maps上添加标记。

要做到这一点,我想我要使用php -server端编程。我能够将数组从PHP传递给Javascript。这是

   <?
mysql_connect('localhost', 'username', 'pwd') or die(mysql_error()); 
echo "Connected to MySQL<br />";

mysql_select_db("pro_user") or die(mysql_error());

$result = mysql_query("SELECT * FROM info"); 
$no=count($result);
$i=0;
while($row = mysql_fetch_array( $result ))
{
    $a[$i]=$row['city'];
    $b[$i]=$row['loc_lat'];
    $c[$i]=$row['loc_long'];
    $i++;
}
  ?>
  <html> 
<head> 
    <script type="text/javascript"> 
    function initialize() 
{ 
    var latlng = new google.maps.LatLng(22.3038945, 70.8021599); 
    var myOptions = {
        zoom: 8, 
        center: latlng, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

<?  for($i=0;$i<count($a); $i++)
    {
        echo "a[$i]='".$a[$i]."';\n";
        echo "b[$i]='".$b[$i]."';\n";
        echo "c[$i]='".$c[$i]."';\n";       

    } 
?>
    function createMarker(latitude,longitude,title) 
    { 
        var markerLatLng = new google.maps.LatLng(latitude,longitude);
        var marker = new google.maps.Marker({ position: markerLatLng, map: map, title: title }); 
    }
    createMarker(22.3038945, 70.8021599,'Gujarat');

for(i=0;i<a.length;i++)
    {   
        document.write(a[i]);
        document.write(b[i]);
        document.write(c[i]);

        initialize().createMarker(b[i], c[i], a[i]);
    }       

} 

    </script>
</head>
<body onload="getData()"></body>
    </html>

现在我被卡住了。我无法通过Javascript数组来制作标记。

1 个答案:

答案 0 :(得分:0)

Google地图网站上有一个非常简单的教程,可以使用PHP / XML / MySQL和Javascript进行此操作....

http://code.google.com/apis/maps/articles/phpsqlajax.html