Может ли кто-нибудь помочь мне с этим кодом ... В основном я хочу вывести карту Google с местоположениями маркеров из моей базы данных 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>
Я думал, что это будет довольно просто, но я не могу разобраться с этим. Если есть какая-то информация, которая неясна ...