燃烧的梦想
 燃烧的梦想,流水的时光 

2006-10-26 Thu

图片库与WebGis挂钩的方法预研

长城小站是由志愿者支持的公益性网站,无固定经济来源。2012年小站台历是由各方网友赞助图片、设计、印刷精心制作的纪念品,用于小站运营经费筹款。
欢迎您购买小站台历,支持长城小站与小站博客的发展。
途径:

1、通过生成shp文件,然后利用MAPSERVER产生地图:

关于shp文件:
图层文件Shpfile是一种无拓扑关系的矢量数据文件。文件由文件头、实体信息段及实体段构成。文件的实体类型(点、线、面)不同,其记录结构也不同。Shx文件是Shp文件的索引,它具有与Shp文件一样的文件头(File Head)与实体信息段(Entity Information),取代Shp文件实体段(Entity)的是实体索引(Entity Index)。实体索引记录的是每个实体的起始坐标在Shp文件中存储的偏移地址,以方便ArcView进行图形操作时对实体索引。Dbf文件是与FoxPro兼容的数据库文件,记录着与Shp文件中图形数据相对应的属性数据。Shp文件实体特性结构中的索引号实际上就是Dbf文件的记录号,图形数据与属性数据一一对应。

解决生成shp文件的问题
可以参考的是gen2shp,参考http://www.intevation.de/~jan/gen2shp

其他搜到的一些有意思的东西也列一下:
dephi的读写shp:http://delphi.apub.org/doc/2006/07/12/11/22/43/195418.html
php读shp的class:http://phpclasses.dev.skypp.com/browse/package/1741.html

2、通过数据库储存数据,然后利用MAPSERVER产生地图
1997年OpenGIS联盟(OGC)发布针对SQL的OpenGIS®简单特征规范,提出了扩展SQL RDBMS以支持空间数据的一些概念性方法。该规范可从OpenGIS网站上获得,http://www.opengis.org/docs/99-049.pdf。MySQL实施了OGC建议的具有Geometry类型的SQL环境的一个子集。
关于mysql空间数据库,参考
http://dev.mysql.com/tech-resources/articles/4.1/gis-with-mysql.html
http://dev.mysql.com/doc/refman/4.1/en/spatial-extensions.html
其中对于mysql5.1有中文版,可作为参考
http://dev.mysql.com/doc/refman/5.1/zh/spatial-extensions-in-mysql.html
通过数据库,在工作量上需要实验,并重新编译mapserver。

参考:
a) 建立空间数据库,其中数据列的类型可以是
·GEOMETRY
·POINT
·LINESTRING
·POLYGON
·MULTIPOINT
·MULTILINESTRING
·MULTIPOLYGON
·GEOMETRYCOLLECTION
SQL参考:
CREATE TABLE geom (g GEOMETRY);
ALTER TABLE geom ADD pt POINT;

b)输入数据
WKT格式:
INSERT INTO geom VALUES (GeomFromText('POINT(1 1)'));
WKB格式:
INSERT INTO geom VALUES (GeomFromWKB(0x0101000000000000000000F03F000000000000F03F));


c)检索数据
WKT格式:
SELECT AsText(g) FROM geom;
WKB格式:
SELECT AsBinary(g) FROM geom;


d)MAP文件案例
LAYER
NAME "mysql_spatial"
TYPE POINT
CONNECTIONTYPE OGR
CONNECTION "MYSQL:dbname,user=username,password=secret"
DATA "SELECT the_geom FROM tablename"
STATUS ON
CLASS
...
END
END

DATA "SELECT the_geom FROM tablename WHERE MBRContains(GeomFromText('Polygon((%minx% %miny%, %minx% %maxy%, %maxx% %maxy%, %maxx% %miny%, %minx% %miny%))'), the_geom)"

3、利用第三方资源

Google Map

API参考:
http://www.step1.cn/GoogleAPI/map/documentation.htm

PHP Class
1) Phoogle Maps
这里有一个已经写好的php的类可以参考,叫Phoogle Maps,可以省些事情
Phoogle Maps
可以显示单点、多点
2)NXGoogleMapsApi
NXGoogleMapsApi
可以显示单点、多点、移动、可移动标记等
3)Monte Ohrt's GoogleMapAPI
Monte Ohrt's GoogleMapAPI

操作注意
事先需要到Google上申请一个id
http://www.google.com/apis/maps/

优点:快速易行
缺点:一旦GOOGLEMAP出问题,则不能正常服务。

Yahoo Map
API参考:
http://developer.yahoo.com/maps/rest/V1/geocode.html

PHP Class
1)Services_JSON
Services_JSON


火箭人于 2006-10-26 11:24:54 发表在分类:技术
(51219次点击) | 标签:  



 评论
 · 发表新帖
 留言总数0帖 页次:1/0 每页:20条 

Power by 小站博客, Ver0.7 update at 2006-03-04