Google MAP api v2 AJAX не работает - PullRequest
0 голосов
/ 23 марта 2012

Мой код не работает, что идет не так, я не могу понять ... мой код:

/* =================Call.php========================*/
<?php
/* Include settings My mysql database */
include ("config.php");
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
     <title>GG-Tracker (GSM and GPS location combined)</title>
     <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=myAPIKey&sensor=true" type="text/javascript"></script>

<?php

echo "
   <script type=\"text/javascript\">
    var map;
   function load() {
     if (GBrowserIsCompatible()) {
       var map = new GMap2(document.getElementById(\"map\"));
   downloadUrl(\"phpsqlajax_genxml.php\", function(data) {
   var xml = data.responseXML;
   var markers = xml.documentElement.getElementsByTagName(\"marker
\");
   for (var i = 0; i < markers.length; i++) {
     var lat = parseFloat(markers[i].getAttribute(\"lat\"));
     var lon = parseFloat(markers[i].getAttribute(\"lon\"));
     var html = \"<b>\" +  \"</b> <br/>\" ;
     var marker = new GMarker(new GLatLng(lat, lon));
     map.addOverlay(marker);
     }
   }
 }
}
function downloadUrl(url, callback) {
   if (window.XMLHttpRequest)
     {
     request=new XMLHttpRequest();
     }
   else
     {
     request=new ActiveXObject(\"Microsoft.XMLHTTP\");
     }
  request.onreadystatechange = function() {
   if (request.readyState == 4) {
     request.onreadystatechange = doNothing();
     callback(request, request.status);
   }
  };
   request.open(\"GET\", url, true);
   request.send();
  }

 function doNothing() {}
  </script>
  ";
 ?>
 </head>
 <body onload="load()" onunload="GUnload()">
 <center>
  <div id="map" style="width: 800px; height: 600px"></div>
  </body>
  </html>
 /* End of =============Call.php===============*/

Мой phpsqlajax_genxml.php для генерации XML:

 /* Start of ===========phpsqlajax_genxml.php=============== */
 <?php
 require("phpsqlajax_dbinfo.php");
 $dom = new DOMDocument("1.0");
 $node = $dom->createElement("markers");
 $parnode = $dom->appendChild($node);
 $connection=mysql_connect ($dbhost, $username, $password);
 if (!$connection) {
 die('Not connected : ' . mysql_error());
 }
 $db_selected = mysql_select_db($database, $connection);
 if (!$db_selected) {
 die ('Can\'t use db : ' . mysql_error());
 }
// Select all the rows in the markers table
$query = "SELECT * FROM markers";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
 }
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("tid",$row['TID']);
$newnode->setAttribute("devid",$row['DevID']);
$newnode->setAttribute("ldate",$row['LDate']);
$newnode->setAttribute("ltime",$row['LTime']);
$newnode->setAttribute("lat", $row['Lat']);
$newnode->setAttribute("lon", $row['Lon']);
$newnode->setAttribute("speed", $row['Speed']);
}
echo $dom->saveXML();
?>
/*=========End of=============phpsqlajax_genxml.php*/

Файл информации моей базы данных: phpsqlajax_dbinfo.php

/*=========Start of=== phpsqlajax_dbinfo.php============*/

<?php
$dbhost = "localhost";
$username="root";
$password="";
$database="mygps";
$gmaps = "AIzaSyCRf9drwSYjBSeKpvSkEHFKqX_yBpq-Tkk";
?>

/*===========End of phpsqlajax_dbinfo.php==============*/

вышеупомянутые три файла не могут работать.

Если я запускаю только файл phpsqlajax_genxml.php для генерации XML, он работает Я могу генерировать XML, но он не может быть загружен через JAVA - я думаю, что вызов AJAX не работает ....

Что делать с автозагрузкой маркера из MySQL на некоторый промежуток времени без перезагрузка всей страницы, например, отслеживание в реальном времени .....

Пожалуйста, помогите мне Мой код выше не работает

Спасибо за чтение Прадип

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Есть ли какая-либо причина для использования php-echo для вывода HTML-источника?

Однако, если приведенный выше код действительно то, что вы на самом деле используете, у вас есть проблема здесь:

var markers = xml.documentElement.getElementsByTagName(\"marker
\");

разрыв строки сломает ваш скрипт, удалите его.

0 голосов
/ 23 марта 2012

API V2 устарел, и вы должны перейти на V3 API.

https://developers.google.com/maps/documentation/javascript/

...