[英]Multiple markers on google maps using PHP arrays with data from Mysql database
因此,我关于堆栈溢出的第一篇文章中,我有2个包含纬度和经度的PHP数组。 这些变量存储的值取决于用户搜索的内容。
我有一个从Google Maps API教程中获得的简单地图,如何仅使用php数组中的经度和纬度向地图添加多个标记?
我非常感谢对此的任何回应
<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
您可以在此处阅读有关操作方法的信息:
然后使用此代码显示标记:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.