2012-06-03 48 views
1

我想知道是否有人可以帮助我。从MySQL加载动态Google标记

我正在使用下面的脚本从MySQL数据库动态加载Google标记,并且脚本工作正常。

<!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" lang="en"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Map My Finds - My Finds Per Location</title> 
     <link rel="stylesheet" href="myfindsperlocation.css" type="text/css" media="all" /> 
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=en"></script> 
     <script type="text/javascript"> 


      function load() { 
      var map = new google.maps.Map(document.getElementById("map"), { 
      center: new google.maps.LatLng(54.312195845815246,-4.45948481875007), 
      zoom:14, 
      mapTypeId: 'satellite' 
      }); 

      var infoWindow = new google.maps.InfoWindow; 

      downloadUrl("loadmyfindsperlocation.php", function(data) { 
      var xml = data.responseXML; 
      var markers = xml.documentElement.getElementsByTagName("marker"); 
      var bounds = new google.maps.LatLngBounds(); 
      for (var i = 0; i < markers.length; i++) { 
      var locationid = markers[i].getAttribute("locationid"); 
      var point = new google.maps.LatLng( 
      parseFloat(markers[i].getAttribute("findosgb36lat")), 
      parseFloat(markers[i].getAttribute("findosgb36lon"))); 
      var marker = new google.maps.Marker({ 
      map: map, 
      position: point 
      }); 
      bounds.extend(point); 
      map.fitBounds(bounds); 
      bindInfoWindow(marker, map, infoWindow, html); 
      } 
      }); 
      } 

      function bindInfoWindow(marker, map, infoWindow, html) {  
      google.maps.event.addListener(marker, 'click', function() {   
      infoWindow.setContent(html);   
      infoWindow.open(map, marker, html);  
      }); 
      } 

      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="load()"> 

          <div id="map"></div> 
         </body> 
         </html> 

你会看到这是一个比较简单的形式,它要求从外部PHP文件这是在我的脚本这里显示的数据:downloadUrl("loadmyfindsperlocation.php", function(data) {

什么我现在想要做的是纳入PHP脚本到上面,但我似乎无法得到地图加载,我怀疑这是做一个URL调用文件。我相信PHP是一个XML相对较新的东西,但是有人可能会告诉我如何在不加载它作为外部URL的情况下调用它。

许多的感谢和亲切的问候

回答

1

我什么都没得到你的CSS或PHP,所以我只能猜测。你在Javascript控制台中看到错误吗?

我所做的是添加以下样式和地图加载,即使PHP缺少,并给我错误。

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

关于加载PHP,它必须用于返回有意义的XML。你可以有一个预先写好的XML并加载。

+0

Hi @Lilina,感谢您抽出宝贵时间回复我的帖子,让我保持直爽。亲切的问候 – IRHM