javascript - 使用 PHP 数组和 Mysql 数据库中的数据在谷歌地图上进行多个标记

标签 javascript php mysql arrays google-maps

所以我关于堆栈溢出的第一篇文章, 我有 2 个包含纬度和经度的 PHP 数组。这些变量存储的值取决于用户搜索的内容。

我有一个从 google map api 教程中获得的简单 map ,如何仅使用 php 数组中的纬度和经度向 map 添加多个标记?

我非常感谢对此的任何善意回应

 <head>
<link type="text/css" rel="stylesheet" href="searchnext.css"/>
<script
src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">
</script>

<script>
function initialize()
{
var mapProp = {
  center:new google.maps.LatLng(57.708742,11.820850),
  zoom:10,
  mapTypeId:google.maps.MapTypeId.ROADMAP
  };
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
}


google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
  <body>



<div id="googleMap" style="width:500px;height:380px;"></div>

 <?php

include_once'config/connect.php';
$search= $_POST['search'];
// To protect MySQL injection (more detail about MySQL injection)
$search = stripslashes($search);

$search = mysql_real_escape_string($search);

$sql= "select * from venue where vID in (select vID from sv where sID in (select sID from sports where sN = '$search'));";
$result=mysql_query($sql);

$latitude = array();
$longitude = array();

while( $row1 = mysql_fetch_array($result)){
    array_push($latitude, $row1['latitude']);

}
while( $row2 = mysql_fetch_array($result)){
    array_push($longitude, $row2['longitude']);

}

echo $latitude[1];
echo $latitude[2];
echo $latitude[3];
?>
</body>

最佳答案

我建议使用由 PHP 生成的 XML 标记文档。

您可以在此处查看 XML 文档的格式:

http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/

因此,您需要做的就是使用 PHP 数据创建一个 XML 文件,如下所示:

http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/data.xml

您可以在此处了解如何执行此操作:

How to generate XML file dynamically using PHP?

然后使用此代码显示标记:

<script type="text/javascript">
function initialize() {
  var myLatlng = new google.maps.LatLng(37.4419, -122.1419);
  var myOptions = {
    zoom: 13,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  downloadUrl("data.xml", function(data) {
    var markers = data.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
      var marker = new google.maps.Marker({position: latlng, map: map});
     }
   });
}
</script>

关于javascript - 使用 PHP 数组和 Mysql 数据库中的数据在谷歌地图上进行多个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20976766/

相关文章:

php - 在 Mac OS 10.6 (Snow Leopard)、10.7 (Lion)、10.8 (Mountain Lion) 上激活 PHP 和 MySQL 的最简单方法?

java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure

MySQL 等效与更新

JavaScript +css - 更改主类别的复选框 css,如果它下面的任何元素被选中

javascript - 如何使用 jQuery 解析字符串/URL

javascript - 评估 JavaScript 语句中的一个特定函数

php - 创建带有条目备份/恢复选项的 PHP CMS

Javascript `confirm()` 先执行

javascript - 如何使用ajax将jquery变量值传递给php变量?

mysql - SQL 选择语法错误