• 在线音乐试听
  • 电影观看找一找
  • 微客许愿LOVE墙
  • 官方博客
  • 站长博客
中国微(微机)客网
站点选择: 网通镜像
  • 首 页
  • 电脑基础
  • 软件教程
  • 代码编程
  • 站长专区
  • 网络资源
  • 新闻娱乐
  • 站长博客
向站长投递您的原创文章 对本站意见反馈
  • 站长热点通告:电脑技术集中营!新上线版块: 点击许愿LOVE墙 点击进入站长博客 点击观看在线电影 点击试听在线音乐
  • 电脑硬件
  • 操作系统
  • 软件应用
  • 优化技巧
  • 防黑安全
  • P S 教程
  • Flash教程
  • Dreamweaver
  • 软件下载
  • Asp编程
  • Php编程
  • .Net编程
  • Access
  • MysQl
  • mssql
  • 其他代码
  • 站长工具
  • 搜索优化
  • 网站推广
  • 网站盈利
  • 域名空间
  • 网盘※相册
  • 综合其他
  • 游戏娱乐
  •                             | 在线音乐试听下载 | 在线电影观看| 在线小游戏| IT热点资讯 | 软件动态
                                      | 论坛快速注册 | 论坛会员登陆 | 论坛快速进入 | 许愿LOVE墙登陆
当前位置:中国微客网>>编程在线>>Php编程>>浏览文章 软件搜索

用PHP添加地图功能

作者:未知 | 来源:互联网 | 文章点击数: | ChinaVik.Com

Image_GIS是用于PHP的PEAR程序包,它能够让开发人员利用可免费下载GIS文件(其中包含特定地理区域的经度和纬度信息)向其Web网站添加数字地图功能。 在本文里,我将向你演示如何使用Image_GIS包给Web网站加入地图功能。

    要使用Image_GIS包,你必须通过PEAR来安装它。Image_GIS包通过addDataFile()方法接受E00格式的文件输入。当你添加文件的时候,文件里的信息就会被剖析;剖析过程需要读取输入文件里的每一行内容,对数据解密,并在本地保存信息。一旦信息剖析完成,你就可以使用showImage()方法把数据来生成为PNG格式的图像。这些数据包括构成最终图像线条所要求的经度和纬度点对点信息。

    创建这个解决方案的第一步是安装Image_GIS包。一旦安装好了Image_GIS及其相关性,你就需要指定含有ARC/INFO(.e00)格式的GIS数据的文件。幸运的是,美国人口统计局(US Census Bureau)的Web网站上有ARC/INFO格式的GIS数据下载。在本文的解决方案里,我将用到我所在的肯塔基州的县边界数据。

    这里的一个难点是,这些文件里的数据格式是双精度的,而Image_GIS包只能够剖析单精度的数据。而PHP很重要的一个特色是它的源代码就放在这个包里,要接受双精度的数据,就需要对代码进行一些必要的修改。具体步骤如下:

1. 在Image_GIS包的安装目录下找到E00.php文件。

2. 打开这个文件,找到下面这个正则表达式搜索样式:

([ -][0-9].[0-9]E[-+][0-9])

3. 把搜索样式的7位限制改成7到14位限制,就像下面这样:

([ -][0-9].[0-9]E[-+][0-9])

    另外一个问题是Image_GIS包要求当文件结束的时候,点对点的信息也要结束。但是在美国人口统计局的数据里,这显然是不可能的;当line-set标识符变为-1时,点对点信息才会结束。在输入文件里,标签信息跟在这特别的一行后面。我们需要做的唯一事情是在输入文件里寻找这一标签,并在到达这一行的时候停止剖析:

else if ($numRecords == 0 &&
preg_match("#^s+(-1)s+([-0-9]+)s+([0-9]+)s+([0-9]+)s+([0-9]+)s+([0-9]+)s+([0-9]+)#", $line, $a)) {if ($this->debug) {
echo $line . '';
}
break;

}

    一旦完成了这些改动,我们就可以使用这个包了。这个包里的文档相当有限,但是在GIS.php文件的开始有一个示例。这个例子反映的是制作Image_GIS包的某位开发人员的家乡。通过这个例子,我可以编写自己的代码来生成肯塔基州的PNG图像:

require_once "Image/GIS.php";

$map = new Image_GIS(array('width' => 1200,'height' => 600,'debug' => 0));

$map->addDataFile('X:path_to_fileco21_d00.e00', 'black');

$map->showImage();

?>

    我做的第一件事是获得Image_GIS包。然后利用构造函数信息创建一个Image_GIS类的实例。在本文里,我设置了所生成图像的宽度和高度,并关掉了调试,因为调试只会输出一些冗长的数据剖析信息和生成信息。一旦生成了实例,数据就通过addDataFile()方法被添加。线条按照方法调用的第二个参数所指定的颜色生成。最后,showImage()方法利用底层的PHP图像生成的imagepng()方法把图像用PNG格式输出。你可以加入一个以上的GIS文件,并在同一个图像里指定不同的颜色来表示更多的地区。

    当对编写这种解决方案有了一点感觉的时候,你就可以破解一下GIS文件,看看里面有什么。你会看到每个集合都代表着一系列相互连接的线条。每一行数据都代表着所生成的图像里的线条的经纬度。当你了解了这个文件,你就可以给自己的图像创建自己的GIS文件了。你可以把地图图像与Image_GIS包生成的图像进行重叠,这样就可以得到地图上某个区域位置的图像。    要查看示例,可以在这里下载源代码。


朋友若要转载,采集本站内容,请注明出自www.chinavik.com-中国微(微机)客网(搜集整理不容易)

上一篇:用PHP命令行控制脚本 下一篇:在PHP中运行XPath查询

关键字 Tags:  php 代码 编程
 查看所有评论请《点击右侧发表评论》【发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口】



 发表评论 特别声明:
·本站发布内容均为客观表达作者观点,不代表站长立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为

网络广告信息

中国微客网音乐频道开通:在线MP3听歌、歌词下载 中国微客网影视频道开通:电影搜索引擎,在线看电影,电影在线观看,免费电影-在线观看下载,最新大片

推荐文章

  • ·PHP生成带有雪花背景的验证码 2008/02/07
  • ·用PHP添加地图功能 2008/02/07
  • ·用PHP命令行控制脚本 2008/02/07
  • ·利用PHP制作简单的内容采集器 2008/02/04
  • ·Php常见问题汇总与解答 2008/02/02
  • ·PHP做Web项目的优缺点 2008/02/02
  • ·php过滤危险html代码 2008/02/02
  • ·PHP常用的正则表达式 2008/02/02
  • ·在PHP中运行XPath查询 2008/02/07

热点资讯

  • ·利用PHP制作简单的内容采集器 2008/02/04
  • ·Php常见问题汇总与解答 2008/02/02
  • ·php过滤危险html代码 2008/02/02
  • ·PHP常用的正则表达式 2008/02/02
  • ·在PHP中运行XPath查询 2008/02/07

设为首页 - 加入收藏 - 联系站长 - 友情链接 - 网站留言 - 广告合作 - 网站地图


郑重声明:本站内容均来自网上,请网友自行辨别!如有侵权请及时告知,我们会马上处理!...本站内容纯手工录入,若转载请注明出处,万分感谢。
点击技术支持,建议合作 QQ:在线交谈11753718 QQ交流群 47614632 E-Mail:chinavik#163.com 电话tell:15898705041 chinavik#126.com
Copyright 2006-2008 Powered by 中国微客-电脑技术在线All Rights Reserved
备案/许可证号:鲁ICP备08002060号