【问题标题】:Fetch data from database and use it to make markers in Google Maps从数据库中获取数据并使用它在谷歌地图中制作标记
【发布时间】:2012-02-23 14:17:07
【问题描述】:

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

为此,我认为我必须使用 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 数组来制作标记。

【问题讨论】:

  • 我会从您的问题中删除您的实际 MySQL 用户名和密码!

标签: javascript google-maps mysql-connect


【解决方案1】:

在谷歌地图网站上有一个非常简单的教程,使用 PHP / XML / MySQL 和 Javascript 来做到这一点......

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

【讨论】:

  • 非常感谢您的快速回复。有没有其他方法可以通过使用 PHP 和 Javascript 来做同样的事情?请告诉我。
  • @an你的意思是不使用 XML 吗?确保只使用数组而不是 XML 并循环数组
  • 这是我正在尝试的,但它不起作用。我可以使用 js 打印它但无法在地图上获取
  • 更新(原始)代码,请查看并让我知道我在哪里犯了错误。
  • 您的调用 `initialize().createMarker(b[i], c[i], a[i]);` 这不适用于您的 Javascript 设置 - 仅调用 initialise() 然后 @987654323 @
猜你喜欢
  • 1970-01-01
  • 2012-06-06
  • 2015-02-07
  • 2021-02-18
  • 1970-01-01
  • 2016-11-27
  • 2016-03-01
  • 2015-11-03
  • 1970-01-01
相关资源
最近更新 更多