引用:http://blog.sina.com.cn/s/blog_4ac2a65901000bko.html 作者:太初有道 昨天完成了E00到Shapefile文件格式的转换工作。由于E00不是公开格式,所以没有官方文档。目前可以拿到的关于这个文档的最全面的资料是一个不知名的作者写的。其内容也是他推测的。具体链接如下:Arc/Info Export (E00) Format Analysis. 依靠这份文档我编写除了一个程序,经过测试基本上没有什么问题。
但是上面提到的这个文档写的比较随意。尤其在术语上前后不统一。而且关于文件各个部分自之间的关系也没有描述的比较清楚。所以我才认为将我编写代码过程中的理解总结下来。如果你需要编写将E00转换为Shapefile的程序。一定要首先参考上面的文档,然后再参考我写的补充说明。或者可以直接通过我的MSN找我要代码。
好了,下面是关于E00文件的内容:
1.术语
节:E00文件由很多部分组成,我们称每一个部分为一个节(Section).例如:ARC节、CNT节、LAB节.(在上面的文档的称为文件。感觉很别扭。)在下面的文档中我肯能会称其为段(Segment)。这二者是一个含义。请大家注意。
块:每一个节中都是数据块有规律的排列。这个数据单位称为快(Block)
id: E00文件中各个节的数据之间是有引用关系的。引用的使用通过id来引用。下文中我所提到的id都是这个含义。
编号:E00文件中还有其它一些编号,他们本身没有id的作用。或者其作用不明确,称为编号(NO)
2.需要关注的节.
E00文件的节很多,但是在一般情况下我们只需要关注下面的几个节就可以了:ARC节、LAB节、PAL节、PRJ节、.AAT节和.PAT节。一共六个主要的节。下面分别分写他们的结构.
2.1 ARC节
ARC 节中保存的是弧段,如果这是一个点文件,那么应该没有此节,或者此节没有数据。如果是一个线文件,那么这里就是线图形存储的地方。如果是一个面文件,那么面的边界就是由这里的弧段链接而成。
ARC节以ARC 2或者ARC 3开始。以-1 0 0 0 0 0 0结束。注意这里描述各种标记的时候我会将多个空格压缩为一个,以便于书写。在编写实际代码的时候,建议自己编写一个这样的压缩工具,在有必要的时候将数据行压缩有再分析。
ARC节中的数据块的格式是这样的:
第一行 1.Arc的id 2.Arc的NO 3.Arc的起点id 4.Arc的终点id 5.Arc 的左多边形的id 6.Arc的右多边形的id.7.Arc中所包括的点的个数。
接下来是Arc中的点坐标数据,注意每行是两个坐标点。如果点的个数是奇数那么最后一行只有一个点。
其中Arc的id是很重要的,应为多边形使用这个id来引用弧段.Arc中所包括的点数也很重要。这决定了接下来还有多少数据属于这个块。
2.2 LAB节
LAB节中记录的是点的信息。在点文件中,它就是图形信息。而在线或者面文件中,这个节的数据基本上没有用。
下面给出这个节的格式:
以LAB 2或者LAB 3开始.对应的以-1 0 0.0000000E+00 0.0000000E+00结束或者以-1 0 0.00000000000000E+00 0.00000000000000E+00结束。
第一行 1.点的id 2.点所在的多边形的id 3.点的x坐标 4.点的y坐标。
第二行 已经宣布废弃的数据 将点的x、y坐标重复两遍.
这一节的格式特别简单
2.3 PAL节
PAL节中存储的是多边形的图形。多边形是通过链接ARC节中的弧段来构造的。下面是其格式:
以PAL 2或者PAL 3开始以-1 0 0 0 0 0 0 结束
第一行:1.弧段的个数2.Envelope的XMin 3.Envelope的ymin 4.Envelope的XMax 5.Envelope的YMax。
接下来:就是弧段信息。弧段信息的格式是这样的:
每一行两个弧段,如果弧段数目是奇数个,那么最后一行只有一个弧段。
每个弧段由三个数据组成1.Arc的id 2.弧段的起点 3.弧段的终点.
需要注意的是:1.如果Arc的id为负数,表示这个弧段在参与这个多边形的时候要反向。
2.第一个多边形是多余的数据,用来表示整个图层的范围。没有属性对应。
2.4 PRJ节
这一节存储的是投影信息。其结构特别简单
1.以PRJ 2或者 PRJ 3开始,以EOP结束
2.每一块数据占两行:第一行1.参数名称 2.参数取值
第二行默认为~ .没用用处。
我自己写的数据转换代码实际上不读取这个数据。主要是不知道其中的关键字有多少格。具体参考ADS和MOSS所支持的投影类型。
关于E00文件中的图形数据,基本上就是这些内容。下一篇写如何读取属性数据。
|
目前共发布95个数据集的信息,涉及的总数据量超过25GB (不包括遥感影像数据集)。大部分数据为带密级的数据,不能通过网络直接获取。其中共有49个数据集的数据和24个样例数据可以直接免费下载,数据量达210MB。对于其中带密级的数据,分别给出了数据获取途径、程序以及需要遵照的法规。
该网站提供FreeGIS平台索引,国际上主要的FreeGIS平台都可以在这里找到
该网站提供开放源代码的GIS资源
国际开放GIS标准的制订者,ESRI,Intergraph,Mapinfo,Oracle,Sun,BEA等都是OGC成员
MySQL从4.1开始支持空间数据库,遵循OGC规范,目前正式版本是5.0
PostgreSQL是和MySQL齐名的开放源码数据库,最新版本8.0,通过PostGIS中间件可以让PostgreSQL(7.4及以下版本)支持空间数据库
Oracle从8i开始支持空间数据库,目前在商业空间数据库领域占有绝对优势。
产品名称 |
Mapxtrem |
GeoMedia Web Map, GeoMedia Web Enterprese |
Arc IMS, MapObjects IMS |
MapGuide |
GeoSurf |
客户端是否需要插件或控键 |
不需要 |
需要 |
不需要 |
需要 |
不需要 |
网络传递的图像格式 |
JPEG(栅格图) |
ActiveCGM(栅格图或矢量图) |
ActiveCGM(栅格图或矢量图) |
MpaGuide SDF矢量数据或JPEG栅格图 |
GeoSurf DH M矢量数据 |
与数据库连接方式 |
ODBC |
ODBC |
ODBC |
ODBC |
JDBC |
地图预出版处理 |
动态生成地图 |
动态生成地图 |
动态生成地图 |
需要进行数据格式转换处理 |
需要进行数据格式转换处理 |
可发布的数据格式 |
MapInfo地图文件 |
MGE工程,MicroStation DGN文件, Frame文件,MGEDM文件,ArcView Shape文件,ArcInfo Coverage,Autodesk DWG文件,Mapinfo TAB文件 |
ArcView Shape 文件,AecInfo Coverage,SDE地图 |
ArcView Shape 文件,AecInfo Coverage,SDE地图, ,Autodesk DWG文件, MicroStation DGN文件, Mapinfo TAB文件 |
ArcView Shape 文件,AecInfo Coverage,SDE地图, ,Autodesk DWG文件, MicroStation DGN文件, Mapinfo TAB文件 |
名称 | 数据格式 | 客户端 | 网址 | 备注 | 公司 |
国外 | |||||
Google Earth | 卫星影像 | 胖 |
http://earth.google.com/ | 估计是java技术 | |
Microsoft Live Local | 卫星影像、栅格 | 胖 | http://preview.local.live.com/ | Microsoft | |
WorldWind | 卫星影像 | 胖 |
http://worldwind.arc.nasa.gov/ | 智能客户端技术 | NASA |
Google Map | 栅格地图 | 瘦 |
http://maps.google.com http://www.google.com/apis/maps/ |
可叠加卫星影像,提供API | |
Yahoo | 栅格地图 | 瘦 |
http://developer.yahoo.net/maps/ | 提供API | Yahoo |
MSN Virtual Earth | 未知 |
|
http://www.virtualearth.com/ | Microsoft | |
feedmap | 栅格地图 | 瘦 |
http://www.feedmap.net/BlogMap/ | ||
国内 | |||||
Go2Map | 栅格地图 | 瘦 |
http://www.go2map.com/down/freemap/ | 提供城市地图服务和API | Sohu |
新浪爱问 | 栅格地图 | 瘦 |
http://local.sina.com.cn/ | 地图搜索服务 | Sina |
Mapabc | 栅格地图 | 胖 |
http://www.mapabc.com | 地图搜索服务,提供地图名片 | |
Mapbar | 栅格地图 | 瘦 |
http://www.mapbar.com | 地图搜索服务,提供博客地图 | |
我要地图 | 栅格地图 | 瘦 |
http://www.51ditu.com | 地图搜索服务 | |
搜狗地图 | 栅格地图 | 瘦 |
http://map.sogou.com/ | Sohu收购Go2Map后推出的地图搜索服务 | Sohu |
baidu | 栅格地图 | 瘦 |
http://map.baidu.com | MapBar为baidu提供地图服务 |
向您介绍国际开源WebGIS项目,它们具有共同特点:免费使用,开放源代码(具体使用规则请参看各个平台的 Lisense文件),希望借此带您进入广阔的开源GIS世界。
采用Java开发的几个主要开源WEBGIS项目列表(由于时间有限,只选取部分)
平台 | 当前版本 | 生成日期 | 项目地址 | 授权协议 | 支持格式和接口 | |||||||||
ESRI Shape | Mapinfo MID/MIF | Oracle | MySQL | PostGIS | 其他格式*2 | OGC*8 WMS*9 Server | OGC WFS*10 Server | OGC WCS*11 Server | MS .Net | |||||
Deegree | 2.0 | 2005-2-3 | http://deegree.sourceforge.net | LGPL | √ | √ | √ | √ | √ | GML2.1.1 | √*4 | √*5 | √*6 | |
OpenMap | 4.6.3 | 2006-2-1 | http://openmap.bbn.com | OpenMap License | √ | √*1 | √*3 | √ | VPF RPF DTED | √ | √*7 | |||
GeoServer*14 | 1.3 | 2006-2-16 | http://docs.codehaus.org/display/GEOS/Home | GPL 2.0 | √ | √ | √ | √ | √ | GML2.1.1 ArcSDE DB2 VPF | √*9 | √*10 | ||
GeoTools | 2.1.1 | 2006-1-26 | http://www.geotools.org | LGPL | √ | √ | √ | √ | √ | GML2.1.1 ArcSDE | √ | |||
uDig*12 | 1.0.6 | 2005 | http://udig.refractions.net/confluence/display/UDIG/Home | LGPL | √ | √ | √ | √ | √ | GML2.1.1 ArcSDE DB2 | ||||
mapbuilder-lib*13 | 1.0rc1 | 2005-12 | http://mapbuilder.sourceforge.net/ | LGPL | GML | √ | √ | √ |
平台 | 当前版本 | 生成日期 | 项目地址 | 授权协议 | 支持格式和接口 | 开发语言 |
GRASS | 6.0.2 | 2006-2-22 | http://grass.itc.it | GPL | ESRI E00, Shape, DXF, GPS-ASCII, USGS-DEM,IDRISI, OSS, MapInfo MIF,TIGER, RML Raster ARC/GRID, E00, GIF,TIF, PNG, ERDAS LAN | C |
MapServer | 4.6 | 2005-6-14 | http://mapserver.gis.umn.edu/index.html | MapServer License | ESRI Shape, Mapinfo, PostGIS, ArcSDE (通过OGR*1支持) TIFF/GeoTIFF, EPPL7(通过GDAL*2支持)WMS (client/server), WFS (client/server) | C |