使用mysql存放空间数据

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

mysql4.1及以后版本包含了空间数据引擎,可以通过sql语句存取空间数据、进行空间查询。

mysql的Spatial引擎使用OGC(Open GIS Consortium)定义的WKT(Well-Known Text)/WKB(Well-Known

Binary)格式保存空间数据。

mysql空间数据模型

* Geometry (未支持)

o Point (已支持)

o Curve (未支持)

+ LineString (已支持)

# Line

# LinearRing

o Surface (未支持)

+ Polygon (已支持)

o GeometryCollection (已支持)

+ MultiPoint (已支持)

+ MultiCurve (未支持)

# MultiLineString (已支持)

+ MultiSurface (未支持)

# MultiPolygon (已支持)

更多的信息请查阅 mysql参考文档第18章(版本4.1.8,其他版本章节号可能有出入)

应用实例

geoTable表的结构

字段 类型

id INT

geo GEOMETRY

建表SQL语句

"CREATE TABLE geoTable (`id` int(11) NOT NULL auto_increment, `geo` geometry default NULL,

PRIMARY KEY (`id`)) ENGINE=MyISAM"

注意:只有MyISAM类型的表支持空间数据

插入一条折线到geoTable表中

INSERT INTO geoTable VALUES (GeomFromText(LINESTRING(0 0,1 1,2 2)));

返回整个表的数据

"SELECT id, AsText(geo) FROM geoTable"

返回Polygon区域内的数据

"SELECT id, AsText(geo) FROM geoTable WHERE MBRIntersects(GEO, GeomFromText('Polygon

((...))'))"

完整的应用实例可以查看开源webgis平台openmap的MysqlGeometryLayer.java文件

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航