Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过PHP文件以XML格式加载Google地图标记_Javascript_Php_Xml_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 通过PHP文件以XML格式加载Google地图标记

Javascript 通过PHP文件以XML格式加载Google地图标记,javascript,php,xml,google-maps,google-maps-api-3,Javascript,Php,Xml,Google Maps,Google Maps Api 3,我试图通过xml格式从我的数据库中绘制地址。我有一个PHP文件,它以xml格式绘制这些地址,我想将它们作为标记显示在GoogleMap中 generatexml.php工作正常,它以xml格式显示所有地址,但我不知道如何将这些地址作为标记绘制到地图中 generatexml.php的结果 <markers> <marker address="Lichfield Road, Burton on Trent, United Kingdom"/> <marker addr

我试图通过xml格式从我的数据库中绘制地址。我有一个PHP文件,它以xml格式绘制这些地址,我想将它们作为标记显示在GoogleMap中

generatexml.php工作正常,它以xml格式显示所有地址,但我不知道如何将这些地址作为标记绘制到地图中

generatexml.php的结果

<markers>
<marker address="Lichfield Road, Burton on Trent, United Kingdom"/>
<marker address="Anchor BuildingsWestgate, Morecambe, United Kingdom"/>
</markers>

这是我生成xml文件的php文件

 // file name  generatexml.php
    require ('connection.php');


    // Start XML file, create parent node
     $dom = new DOMDocument("1.0");
     $node = $dom->createElement("markers");
     $parnode = $dom->appendChild($node);
     // Opens a connection to a MySQL server
    $connection=mysqli_connect($host, $username, $password);
    if (!$connection) {  die('Not connected : ' . mysqli_error());}
    // Set the active MySQL database
    $db_selected = mysqli_select_db($connection ,$database );
   if (!$db_selected) {
     die("Database selection failed: " . mysqli_error());
     }
  // Select all the rows in the markers table

   $query = "SELECT * FROM mapping WHERE 1";
   $result = mysqli_query($connection , $query);
   if (!$result) {
       die('Invalid query: ' . mysqli_error());
    }
   header('Content-type: text/xml');
    // Iterate through the rows, adding XML nodes for each
    while ($row = @mysqli_fetch_assoc($result)){
    // ADD TO XML DOCUMENT NODE
        $node = $dom->createElement("marker");
    $newnode = $parnode->appendChild($node);
     $newnode->setAttribute("address", $row['address']);

       }

       echo $dom->saveXML();

       ?>
  <script>
        src="https://maps.googleapis.com/maps/api/jskey=mykey&sensor=false">
  </script>

 function initialise() {
myLatlng = new google.maps.LatLng(54.559323,-3.321304);
mapOptions = {
    zoom: 5,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
  }
geocoder = new google.maps.Geocoder();
infoWindow = new google.maps.InfoWindow;
map = new google.maps.Map(document.getElementById('map-canvas'),         
  mapOptions);

xmlUrl = "inc/generatexml.php";

loadMarkers();

     }
  google.maps.event.addDomListener(window, 'load', initialise);
//文件名generatexml.php
require('connection.php');
//启动XML文件,创建父节点
$dom=新的DOMDocument(“1.0”);
$node=$dom->createElement(“标记”);
$parnode=$dom->appendChild($node);
//打开到MySQL服务器的连接
$connection=mysqli\u connect($host、$username、$password);
if(!$connection){die('notconnected:'.mysqli_error());}
//设置活动MySQL数据库
$db\u selected=mysqli\u select\u db($connection,$database);
如果(!$db_选中){
die(“数据库选择失败:”.mysqli_error());
}
//选择标记表中的所有行
$query=“从映射中选择*,其中1”;
$result=mysqli\u查询($connection,$query);
如果(!$result){
die('无效查询:'.mysqli_error());
}
标题('Content-type:text/xml');
//遍历行,为每个行添加XML节点
而($row=@mysqli\u fetch\u assoc($result)){
//添加到XML文档节点
$node=$dom->createElement(“标记”);
$newnode=$parnode->appendChild($node);
$newnode->setAttribute(“地址”,$row['address']);
}
echo$dom->saveXML();
?>
src=”https://maps.googleapis.com/maps/api/jskey=mykey&sensor=false">
函数初始化(){
myLatlng=new google.maps.LatLng(54.559323,-3.321304);
映射选项={
缩放:5,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP,
}
geocoder=新的google.maps.geocoder();
infoWindow=新建google.maps.infoWindow;
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
xmlUrl=“inc/generatexml.php”;
loadMarkers();
}
google.maps.event.AddDomainListener(窗口“加载”,初始化);

有什么想法或例子吗?

您需要显示多少个总地址?您无法绘制地址本身。你需要对它们进行地理编码以获得坐标。超过10个地址将达到地理编码器的配额/速率限制。您的
loadMarkers
功能是什么样子的?请提供演示此问题的示例。以下是地理编码API的使用限制,以供参考:。免费API每秒有5个请求。您的maps API调用中缺少一个
<代码>https://maps.googleapis.com/maps/api/js?key=...