Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php 谷歌地图标记不显示在浏览器或浏览器中_Php_Mysql_Google Maps_Maps - Fatal编程技术网

Php 谷歌地图标记不显示在浏览器或浏览器中

Php 谷歌地图标记不显示在浏览器或浏览器中,php,mysql,google-maps,maps,Php,Mysql,Google Maps,Maps,下面是关于如何将google maps与php/mysql结合使用的教程: Firefox中的一切看起来都正常,但Chrome或Explorer中没有显示标记。在chrome控制台中,我发现以下错误: 未捕获的TypeError:无法读取null/maps/:35的属性“documentElement” (匿名函数)/maps/:35 request.onreadystatechange 以下是我的代码(与教程中的代码完全相同): PHP/MySQL和googlemaps示例 // 下面是输

下面是关于如何将google maps与php/mysql结合使用的教程:

Firefox中的一切看起来都正常,但Chrome或Explorer中没有显示标记。在chrome控制台中,我发现以下错误:

未捕获的TypeError:无法读取null/maps/:35的属性“documentElement” (匿名函数)/maps/:35 request.onreadystatechange

以下是我的代码(与教程中的代码完全相同):


PHP/MySQL和googlemaps示例
//
下面是输出xml的文件:

<?php  

require("db.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=mysql_connect ('maps', $username, $password);
if (!$connection) {  die('Not connected : ' . mysql_error());} 

// Set the active MySQL database

$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 WHERE 1";
$result = mysql_query($query);
if (!$result) {  
die('Invalid query: ' . mysql_error());
} 

header("Content-type: text"); 

// Iterate through the rows, adding XML nodes for each

while (( $row = mysql_fetch_assoc($result))!==false){

// ADD TO XML DOCUMENT NODE  
$marker = $dom->createElement("marker");  
 $node->appendChild($marker);   
 $marker->setAttribute("name",$row['name']);
 $marker->setAttribute("address", $row['address']);  
 $marker->setAttribute("lat", $row['lat']);  
 $marker->setAttribute("lng", $row['lng']);  
 $marker->setAttribute("type", $row['type']); 
 }

 echo $dom->saveXML();

 ?>
createElement(“标记”);
$parnode=$dom->appendChild($node);
//打开到MySQL服务器的连接
$connection=mysql\u connect('maps',$username,$password);
if(!$connection){die('notconnected:'.mysql_error());}
//设置活动MySQL数据库
$db\u selected=mysql\u select\u db($database,$connection);
如果(!$db_选中){
die('不能使用db:'.mysql_error());
} 
//选择标记表中的所有行
$query=“从标记中选择*,其中1”;
$result=mysql\u query($query);
如果(!$result){
die('无效查询:'.mysql_error());
} 
标题(“内容类型:文本”);
//遍历行,为每个行添加XML节点
while(($row=mysql\u fetch\u assoc($result))!==false){
//添加到XML文档节点
$marker=$dom->createElement(“标记”);
$node->appendChild($marker);
$marker->setAttribute(“名称”,$row['name']);
$marker->setAttribute(“地址”,$row['address']);
$marker->setAttribute(“lat”,$row['lat']);
$marker->setAttribute(“lng”,$row['lng']);
$marker->setAttribute(“类型”,$row['type']);
}
echo$dom->saveXML();
?>
非常感谢任何帮助

mapTypeId: 'roadmap'
这不是有效的映射类型。应该是这样的:

mapTypeId: google.maps.MapTypeId.ROADMAP
var infoWindow = new google.maps.InfoWindow();
这也不完全正确:

var infoWindow = new google.maps.InfoWindow;
应该是这样的:

mapTypeId: google.maps.MapTypeId.ROADMAP
var infoWindow = new google.maps.InfoWindow();

除了邓肯已经指出的问题之外,你不能做

  var icon = customIcons[type] || {};
因为Javascript中没有关联数组。var customIcons被定义为一个对象,因此

var icon = eval('customIcons'+'.'+type) || {};
然后,Marker对象的图标参数应该是MarkerImage对象,而不是

icon: icon.icon,
shadow: icon.shadow,
你应该使用

icon: new google.maps.MarkerImage(icon.icon),
shadow: new google.maps.MarkerImage(icon.shadow),

我想你也需要一个身体。@Pete:是的,我刚把身体的部分漏掉了,但我现在已经把它放在示例代码中了。邓肯:我试过你的建议,但标记仍然没有显示,控制台中的错误仍然存在。谢谢你为我指出这一点。我已经做了你建议的改变。然而,这并没有解决我的问题。仍然会得到相同的错误。你有av工作脚本吗?对不起,我没有你脚本的工作副本。然而,如果你想发布一个链接到你拥有的东西,我们可以对它进行适当的调试。请注意,您得到的错误是指行var markers=xml.documentElement.getElementsByTagName(“标记”);因此,可能是您的XML加载不正确。我想您可能已经尝试了相同的教程(上面的链接),这就是我问的原因。这是使用上面发布的脚本的实时站点:这是xml输出:感谢您的帮助:)您的问题似乎出在PHP中。尝试单击您使用Chrome为XML发布的链接(空白页),然后查看该空白页的来源。PHP脚本发送了错误的标题。在输出开始之前,需要发送一个适当的XML头,因此在PHP脚本中需要头('Content-Type:text/XML');请参阅:除此之外,请注意,许多标记都有lat/lon(0,0)对不起,这是一个空白页面,我尝试了不同的方法。您完全正确,在调试时,我在内容类型定义中只有文本。我现在在chrome中收到另一条错误消息,但标记显示:谢谢你的帮助!