谁能帮我处理这段代码...基本上我想从我的 MSSQL 数据库中输出带有标记位置的谷歌地图。我正在连接到数据库并从数据库中输出数据,没有任何问题。我的数据库中需要用到的值是纬度和经度
我只需要一些帮助将经纬度信息从数据库中获取到一个数组中,该数组可以传递给“var markers = createMarker”。任何人都可以提出任何代码或建议吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;
charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true_or_false&key=ABQIAAAAFdAFQ5eUeLToBjop7wxvVRQwhZZS-c1L0GQSo2zewspgIUCbcBQLESvgR7pk_2Z2FMWsfROoCbyJrw" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(
document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addMapType(G_SATELLITE_3D_MAP);
map.setCenter(
new GLatLng(37.4419, -122.1419), 13);
function createMarker(point, text, title) {
var marker =
new GMarker(point,{title:title});
return marker;
}
<?php
$points = Array(
"37.4389, -122.1389",
"37.4419, -122.1419",
"37.4449, -122.1449");
foreach ($points as $key => $point) {
?>
<!-- ADD NEW MARKERS FROM A DATABASE -->
var marker = createMarker(
new GLatLng(<?php echo $point ?>)
);
map.addOverlay(marker);
<?php } ?>
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map"
style="width: 500px; height: 300px"></div>
<?php
/*data base connection */
/* SQL query */
$tsql = ("SELECT gps_lat
,gps_long
FROM location");
$result = sqlsrv_query($conn,$tsql);
if( $result === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/*Display the table */
// keeps getting the next row until there are no more to get
while($points = sqlsrv_fetch_array( $result )) {
echo $points['gps_lat'];
echo ',';
echo $points['gps_long'];
echo "</br>";
}
/* Close the connection. */
sqlsrv_close( $conn);
?>
</body>
</html>
我尝试使用以下方法创建新标记,但没有成功。任何人都可以指出下面的代码有什么问题或给我任何建议吗?
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(
document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addMapType(G_SATELLITE_3D_MAP);
map.setCenter(
new GLatLng(37.4419, -122.1419), 13);
function createMarker(point, text, title) {
var marker =
new GMarker(point,{title:title});
return marker;
}
<?php
/*data base connection */
/* Connect using Windows Authentication */
$conn = sqlsrv_connect($serverName, $connectionOptions);
/* Check whether connnection is established */
if($conn === false)
{
die(print_r(sqlsrv_errors(), true));
}
/* SQL query */
$tsql = ("SELECT TOP 10 gps_lat
,gps_long
FROM location");
$result = sqlsrv_query($conn,$tsql);
if( $result === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}
/*
BELOW IS THE ADJUSTED WHILE LOOP
*/
while($row = sqlsrv_fetch_array( $result )) {
$lat = $row['gps_lat'];
$long = $row['gps_long'];
?>
var marker = createMarker(
new GLatLng(<?php echo $Lat.','.$Long;?>)
);
map.addOverlay(marker);
<?php } ?>
}
}
//]]>
</script>
我认为这会相当简单,但我似乎无法理解它。如果有不清楚的信息...