我做了你的建议,地图显示正确,但没有标记。也许我犯了一些错误? 代码:
`
mysql_connect("xxx", "xxx", "xxx") or die("Error connecting to database: ".mysql_error());
mysql_select_db("xxx") or die(mysql_error());
$querz = "SELECT * FROM markers";
$result = mysql_query($querz)
or die("Query failed");
while ($row = mysql_fetch_array($result)) {
$lat = "$row[lat]";
$lng = "$row[lng]";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="iso-8859-2">
<title>Simple icons</title>
<style>
html, body, #map-canvas {
height: 600px;
margin: 0px;
padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(52, 19)
}
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var image = '20_blue.png';
var myLatLng = new google.maps.LatLng(<?php print($lat); ?>,<?php print($lng); ?>);
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
/html>`
我的问题:有没有办法从Mysql数据库显示标记而不是使用特定的lat和lng,就像我在上面的代码中所做的那样?怎么样 ?我尝试了谷歌教程,但它有一些错误(我已经问过另一个问题)。
答案 0 :(得分:1)
您需要一种服务器端语言才能连接到您的数据库(在您的情况下,我建议您使用最简单的PHP)。您可以使用PDO从数据库中选择数据。
修改强>
你需要在你的javascript代码中编写你的php循环。在这里,您只向地图添加一个标记,即您在查询中选择的最后一个标记。还要确保表格不为空。
你可以这样做:
<script type="text/javascript">
function initialize() {
var mapOptions = {
zoom: 8,
center: new google.maps.LatLng(52, 19)
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var image = '20_blue.png';
<?php while($row = mysql_fetch_array($result)): ?>
var myLatLng = new google.maps.LatLng(<?php echo $row['lat']; ?>, <?php echo $row['lon']; ?>);
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
<?php endwhile; ?>
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
答案 1 :(得分:0)
从DB调用lat和long并将它们分配给
$lat
$long
然后你可以像
一样打电话给他们var myLatLng = new google.maps.LatLng(<?php print($lat); ?>,<?php print($long); ?>);
这只是一个想法,您可以根据自己的需要进行转换。