用PHP添加地图功能

时间:2009-07-26 01:06:21   来源:第二电脑网  作者:第二电脑网

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

}


来源:http://www.002pc.com/master/College/Programming/PHP/2008-11-27/3967.html

收藏到:

关于《用PHP添加地图功能》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td