返回信息流问题是,我要在地图上显示路线,也就是从数据库中取出数据后显示在地图上,现在我的办法就是在php文件中创建一个包含一条路线上点的经纬度的xml文件,然后googlemap的代码再来解析xml文档画线,问题有以下几个:
1.在php文件中创建xml要怎么做?
我在网上查到的方法我也觉得差不多,但是放到网页的php代码中就有错误,说是
XML Parsing Error: junk after document element,在这里要说明一下,我的代码是用的openkaku开源代码,用了smarty技术,我在要显示地图的页面代码中加的是:
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("path");
$parnode = $dom->appendChild($node);
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($list_set)){
$node = $dom->createElement("point");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("lat", $row['latitude']);
$newnode->setAttribute("lng", $row['longitude']);
}
echo $dom->saveXML();
其中$list_set就是已经从数据库中取出数据的php变量
2.我写了一段googlemap的代码,放在上面的网页的.tpl文件(模板)中了地图可以显示,我把一个自己做好的xml文件放到虚拟机上,但是就是显示不了,同样的代码在windows下就可以显示路径,我觉得可能是我的.xml文件放的地方不对,我用的是linux虚拟机,那这种.xml文件应该放在哪呢?用的时候路径名要怎么写啊?
拜托各位大侠了!!!
我真的很急啊!!!
谢谢各位了!!!
这是一条镜像帖。来源:北邮人论坛 / www-technology / #3360同步于 2008/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
[求助]我是php的初学者,现在要在php网站上添加googlemap
lovexxbupt
2008/6/6镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 lovexxbupt 的大作中提到: 】
: 1.在php文件中创建xml要怎么做?
: 我在网上查到的方法我也觉得差不多,但是放到网页的php代码中就有错误,说是
: ...................
生成xml可以试下我写的php生成xml的类
<?php
class xml
{
private $xml_obj;
private $root_node;
function __construct($xml_name)
{
$this->xml_obj=new DOMDocument('1.0','UTF-8');
$this->xml_obj->formatOutput = true;
$t = $this->xml_obj->createElement($xml_name);
$this->xml_obj->appendChild($t);
$this->root_node=$t;
}
function __destruct()
{
$this->xml_obj=NULL;
}
public function add_node($name,$attrib=NULL,$node=NULL)
{
$t = $this->xml_obj->createElement($name);
if(!$node) $node=$this->root_node;
$node->appendChild($t);
if($attrib)
{
while(list($key,$val) = each($attrib))
{
if($key=="_text")
$t->appendChild($this->xml_obj->createTextNode($val));
else
{
$att=$this->xml_obj->createAttribute($key);
$att->appendChild($this->xml_obj->createTextNode($val));
$t->appendChild($att);
}
}
}
return $t;
}
public function get_xml()
{
header('Content-Type:text/xml;charset=GB2312');
$str=$this->xml_obj->saveXML();
$str='<?xml version="1.0" encoding="gb2312"?>'.substr($str,38);
return $str;
}
}
$xml=new xml("test");
$nodeArray=array(
"id" => "1",
"name" => "gyh",
"_text" => "测试"
);
$node1 = $xml->add_node("node1");
$xml->add_node("node2",$nodeArray,$node1);
echo $xml->get_xml();
?>
刚看到~
太谢谢啦~
有一个问题,就是我想要在xml文件中循环加入多个点的经纬度,变成如下格式,要怎么做啊:
<path>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
<point lat="39.960093" lng="116.349780"/>
</path>
谢谢!!!
【 在 lovexxbupt 的大作中提到: 】
: 刚看到~
: 太谢谢啦~
: 有一个问题,就是我想要在xml文件中循环加入多个点的经纬度,变成如下格式,要怎么做啊:
: ...................
$xml=new xml("test");
$nodeArray=array(
"lat" => "39.960093",
"lng" => "116.349780",
);
$path = $xml->add_node("path");
for($i=1;$i<=15;$i++)
$xml->add_node("point",$nodeArray,$path);
echo $xml->get_xml();
不好意思,我的例子举错了,应该是不同点的经纬度,现在我手里有一个php数组变量,它的每一项就是从数据库中查询出的一条记录(也就是一行),在这条记录中有两个属性是我所需要的,也就是经纬度(latitude,longitude),这个php变量的名字是$new_diary_list,这个数组变量有多少元素是根据查询条件不同而变化的,但在同一个页面下的查询结果是一样的。
如果是这样的情况再写成如下格式(这是其中一个页面的查询结果,如果数据库中的表项改变了,那么这个结果是会改变的):
<path>
<point lat="39.998276" lng="116.267693"/>
<point lat="39.904629" lng="116.391365"/>
<point lat="39.90712" lng="116.233627"/>
</path>
$xml=new xml("test");
$path = $xml->add_node("path");
for($i=0;$i<=count($new_diary_list)-1;$i++)
{
$nodeArray=array(
"lat" => $new_diary_list[$i]['latitude'],
"lng" => $new_diary_list[$i]['longitude']
);
$xml->add_node("point",$nodeArray,$path);
}
echo $xml->get_xml();