Google map:显示以下教程的错误,用于存储地理代码结果并回调它们以创建地图


Google map: Errors showing following tutorials to store geocode results and call them back to create a map

我正在学习来自Google的两个教程:

http://code.google.com/apis/maps/articles/phpsqlgeocode.htmlhttp://code.google.com/apis/maps/articles/phpsqlajax_v3.html createmap

我有第一个教程工作正常,它的地理编码几个数据库地址和保存lat/lng结果。

我在第二个教程中遇到了一点麻烦,调用结果并创建地图。首先,遵循这些教程对数千个地址进行地理编码并创建地图是否正确?

我已经跟随教程到页面的底部,但有一些错误,第一个是这个:

警告:无法修改报头信息-报头已由(输出开始于/home/medicom/public_html/映射/wp-content/主题/违约/header。php: 8)在/home/medicom/public_html/映射/wp-content/主题/违约/header。php第134行

第134行是这样的:

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 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}
// End XML file
echo '</markers>';

我如何纠正这个?我正在工作的页面是这个http://www.mediwales.com/mapping

更新:

这似乎是有问题的代码:

<?php
require("phpsqlgeocode_dbinfo.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; 
} 
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $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 _health WHERE 1";
$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 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}
// End XML file
echo '</markers>';
?>

是否有替代上述header()的方案?

我刚刚遇到,并修复了这个问题!

教程中呈现xml文件(http://bit.ly/uVTqoh)的php文件必须是它自己的。

除了教程中的代码片段外,不应该有任何其他内容;不要试图将它与任何html放在一起。header向客户端发送一个原始的http头,如果已经定义了一些东西,那么你可以看到浏览器一定会感到困惑。

然后,当您在GDownloadURL函数中引用.php文件时,它从该脚本输出的xml中提取信息。挖?

header()函数应该在任何内容被打印出来之前被调用。

所以,在调用header之前,检查你没有echo调用任何东西