Php 谷歌地图没有';不显示从数据库检索到的数据

Php 谷歌地图没有';不显示从数据库检索到的数据,php,google-maps-api-3,Php,Google Maps Api 3,因此,我尝试在从我的数据库(使用API 3)获取的谷歌地图上显示数据。我得到了正确居中的谷歌地图,但没有标记 generateXml.php和ViewMap.php都在同一个目录中 请帮我把它估价一下 事先非常感谢你 generateXml.php <?php require("db_connection.php"); function parseToXML($htmlStr) { $xmlStr=str_replace('

因此,我尝试在从我的数据库(使用API 3)获取的谷歌地图上显示数据。我得到了正确居中的谷歌地图,但没有标记

generateXml.php和ViewMap.php都在同一个目录中

请帮我把它估价一下

事先非常感谢你

generateXml.php

<?php

      require("db_connection.php");


      function parseToXML($htmlStr) 
      { 
          $xmlStr=str_replace('<','&lt;',$htmlStr); 
          $xmlStr=str_replace('>','&gt;',$xmlStr); 
          $xmlStr=str_replace('"','&quot;',$xmlStr); 
          $xmlStr=str_replace("'",'&#39;',$xmlStr); 
          $xmlStr=str_replace("&",'&amp;',$xmlStr); 
          return $xmlStr; 
      } 

      // Select all the rows in the markers table
      $query = "SELECT transportType,costPerKm,address,teleNo,webLink,description,lat,lng FROM transportpublic";

      $result = mysql_query($query);
      if (!$result) 
      {
        die('Invalid query: ' . mysql_error());
      }

      header("Content-type: text/xml");

      // Start XML file, echo parent node
      echo '<markers>';

      // Iterate through the rows, printing XML nodes for each
      while ($row = mysql_fetch_assoc($result)){
        // ADD TO XML DOCUMENT NODE
        echo '<marker ';
        echo 'transportType="' . parseToXML($row['transportType']) . '" ';
        echo 'costPerKm="' . $row['costPerKm'] . '" ';
        echo 'address="' . parseToXML($row['address']) . '" ';
        echo 'teleNo="' . $row['teleNo'] . '" ';
        echo 'webLink="' . parseToXML($row['webLink']) . '" ';
        echo 'description="' . parseToXML($row['description']) . '" ';
        echo 'lat="' . $row['lat'] . '" ';
        echo 'lng="' . $row['lng'] . '" ';
        echo '/>';
      }

      // End XML file
      echo '</markers>';
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <title>View Map</title>
    <link rel="stylesheet" type="text/css" href="template/css/style.css" />

    <style type="text/css">
    html { height: 100% }
    body { height: 100%; margin: 0; padding: 0 }
    #map { height: 100% }
    </style>

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="util.js"></script>


<script type="text/javascript">

  var infowindow;
  var map;

 function initialize() 
 {
      var myLatlng = new google.maps.LatLng(6.796396,79.877823);
      var myOptions = {
      zoom: 13,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("mapC"), myOptions);
    var transitLayer = new google.maps.TransitLayer();
    transitLayer.setMap(map);


    downloadUrl("generateXml.php", function(data) 
    {
      data = xmlParse(data);
      var markers = data.documentElement.getElementsByTagName("marker");
      var bounds = new google.maps.LatLngBounds();
       for (var i = 0; i < markers.length; i++) 
       {
          var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
          bounds.extend(latlng);
          var marker = createMarker(markers[i].getAttribute("transportType"), latlng);
       }
       map.fitBounds(bounds);
     });
  }


  function createMarker(transportType, latlng) 
  {

    var marker = new google.maps.Marker({position: latlng, map: map});
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content: transportType});
      infowindow.open(map, marker);
    });
    return marker;

  }



function downloadUrl(url, callback) 
{
    var request = window.ActiveXObject ?
        new ActiveXObject('Microsoft.XMLHTTP') :
        new XMLHttpRequest;

    request.onreadystatechange = function() 
    {
      if (request.readyState == 4) 
      {
        request.onreadystatechange = doNothing;
        callback(request, request.status);
      }
    };

    request.open('GET', url, true);
    request.send(null);
}

function doNothing() 
{

}

</script>


</head>
<body onload="initialize()">

    <div id="content123">
        <div style="height:400px">

        <!--dispaly map -->
          <div id="mapC" style="width: 100%; height: 400px"></div>

      </div>
    </div>

</body>
</html>

generateXml lat=“7.284459lng=“

删除此行中的“var”:

    var map = new google.maps.Map(document.getElementById("mapC"), myOptions);
因此,它初始化全局“map”变量,而不是创建一个初始化函数本地的新变量(全局变量正在createMarker函数中使用)


(还有其他更改,但修复该更改的是map变量)

不确定是否相关,但我在chrome浏览器中使用maps api时遇到了很多问题,但在其他浏览器中效果很好。非常感谢您的回复,但我使用Mozilla请格式化您的代码,使其可读。@geocodezip我格式化了代码,甚至添加了generateXml.php源代码code@geocodezip嘿,我知道了,我从您的示例中对以下LIN进行了注释,并且它起了作用,我不知道为什么:)最终Pheewww var bounds=new google.maps.LatLngBounds();边界扩展(latlng);映射边界(bounds);thanx geocodezip这一切thanx为了你的帮助你太棒了:)@Gerard我的坏抱歉我在这里编辑数据时弄糟了我更正了它thanx 4指出:)非常感谢你的示例我从那行中删除了“var”&甚至添加了和_uacct=“UA-162157-1”;海胆追踪者();但还是没有运气[downloadUrl(“SO_generateXml_20130402.xml”,函数(数据){…}我是否传递了.xml文件?我使用了
downloadxml.js
,因为我修改了它以便在IE中使用本地文件,所以您不需要使用它(尽管它可能有助于解决MIME问题)。不要添加用于跟踪我的页面的分析脚本。可能您的XML没有正确的MIME类型。我使用了alert()s,而for循环中的alert()没有显示。什么是“markers.length”?如果您将浏览器指向XML,它是否会报告错误(如中所建议的)?
<?php include("generateXml.php")?> 
This page contains the following errors:

error on line 57 at column 26: StartTag: invalid element name
Below is a rendering of the page up to the first error.

View Map html { height: 100% } 

body { height: 100%; margin: 0; padding: 0 } #map { height: 100% } 

var infowindow; var map; 

function initialize() 

{ 

   var myLatlng = new google.maps.LatLng(6.886464,79.871287); 

   var myOptions = { zoom: 10, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP} 

   map = new google.maps.Map(document.getElementById("mapC"), myOptions); 

   var transitLayer = new google.maps.TransitLayer(); transitLayer.setMap(map); 

   downloadUrl("generateXml.php", function(data)

   { var xml = data.responseXML; 

     var markers = data.getElementsByTagName("marker"); 

     var bounds = new google.maps.LatLngBounds(); for (var i = 0; i
    var map = new google.maps.Map(document.getElementById("mapC"), myOptions);