我已经关注了php页面,该页面从mysql数据库中获取单一纬度和经度,并且可以通过鼠标进行编辑。我的意思是我可以通过点击标记来移动位置。
嗯,现在,我的数据库中只有很少的lat和long。我想在地图上显示所有lat和long。我怎样才能做到这一点。
Javascript代码:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api
/js?sensor=false"></script>
<script type="text/javascript">
// Map Initialize function
function initialize()
{
// Set static latitude, longitude value
var latlng = new google.mpaps.LatLng(<?php echo $lat_d; ?>, <?php echo $long_d; ?>);
// Set map options
var myOptions = {
zoom: 16,
center: latlng,
panControl: true,
zoomControl: true,
scaleControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
// Create map object with options
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Create and set the marker
marker = new google.maps.Marker({
map: map,
draggable:true,
position: latlng
});
// Register Custom "dragend" Event
google.maps.event.addListener(marker, 'dragend', function() {
// Get the Current position, where the pointer was dropped
var point = marker.getPosition();
// Center the map at given point
map.panTo(point);
// Update the textbox
document.getElementById('txt_latlng').value=point.lat()+", "+point.lng();
});
}
</script>
Html代码:
<div style="float:left; position:relative; width:550px; border:0px #000 solid;">
<div id="map_canvas" style="width:550px;height:400px;border:solid black 1px;"></div>
</div>
Php代码:
$id = (int) $_GET['id'];
$sql = mysql_query("SELECT * FROM parkings WHERE LocId = '$id'");
$res = mysql_fetch_array($sql);
$lat_d = $res['latitude'];
$long_d = $res['longitude'];
任何想法或我该怎么做?
答案 0 :(得分:4)
这样的事情应该可以解决问题。
<?php
// this code block contains some test stuff
$lat_d = 40.709;
$long_d = -74.007;
// mimic a result array from MySQL
$result = array(array('latitude'=>$lat_d,'longitude'=>$long_d));
?>
<!doctype html>
<html>
<head>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api
/js?sensor=false"></script>
<script type="text/javascript">
var map;
function initialize() {
// Set static latitude, longitude value
var latlng = new google.maps.LatLng(<?php echo $lat_d; ?>, <?php echo $long_d; ?>);
// Set map options
var myOptions = {
zoom: 16,
center: latlng,
panControl: true,
zoomControl: true,
scaleControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
// Create map object with options
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
<?php
// uncomment the 2 lines below to get real data from the db
// $result = mysql_query("SELECT * FROM parkings");
// while ($row = mysql_fetch_array($result))
foreach($result as $row) // <- remove this line
echo "addMarker(new google.maps.LatLng(".$row['latitude'].", ".$row['longitude']."), map);";
?>
}
function addMarker(latLng, map) {
var marker = new google.maps.Marker({
position: latLng,
map: map,
draggable: true, // enables drag & drop
animation: google.maps.Animation.DROP
});
return marker;
}
</script>
</head>
<body onload="initialize()">
<div style="float:left; position:relative; width:550px; border:0px #000 solid;">
<div id="map_canvas" style="width:550px;height:400px;border:solid black 1px;"></div>
</div>
</body>
</html>