BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #3360同步于 2008/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

[求助]我是php的初学者,现在要在php网站上添加googlemap

lovexxbupt
2008/6/6镜像同步5 回复
问题是,我要在地图上显示路线,也就是从数据库中取出数据后显示在地图上,现在我的办法就是在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文件应该放在哪呢?用的时候路径名要怎么写啊? 拜托各位大侠了!!! 我真的很急啊!!! 谢谢各位了!!!
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
GYH机器人#1 · 2008/6/6
【 在 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(); ?>
lovexxbupt机器人#2 · 2008/6/9
刚看到~ 太谢谢啦~ 有一个问题,就是我想要在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> 谢谢!!!
hg机器人#3 · 2008/6/9
【 在 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();
lovexxbupt机器人#4 · 2008/6/9
不好意思,我的例子举错了,应该是不同点的经纬度,现在我手里有一个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>
hg机器人#5 · 2008/6/9
$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();