MySQL空间扩展 GeomFromText(wkt[,srid])
查询:
SELECT `formdocid`, AsText( `UserGeoField1` ) AS `location`
FROM `wfformdoc
新增:`
INSERT INTO `wfformdoc` (`formdocid`,`UserGeoField1`,`locname`) VALUES
( NULL, ( GeomFromText(‘POINT(40.644047 -73.782291) ‘ ) ),’kennedy’)
19.4. 创建具备空间功能的MySQL数据库
MySQL具有与OpenGIS类对应的数据类型。某些类型只能保存单个几何值:· GEOMETRY
· POINT
· LINESTRING
· POLYGON
GEOMETRY能够保存任何类型的几何值。其他的单值类型POINT、LINESTRING以及POLYGON只能保存特定几何类型的值。
其他数据类型能保存多个值:
· MULTIPOINT
· MULTILINESTRING
· MULTIPOLYGON
· GEOMETRYCOLLECTION
GEOMETRYCOLLECTION能保存任意类型的对象集合。对于其他集合类型,MULTIPOINT、MULTILINESTRING、MULTIPOLYGON和GEOMETRYCOLLECTION,仅限于具有特定几何类型的集合成员。
19.4.2. 创建空间值
MySQL提供了众多以WKT表达式、以及可选的空间参考系ID(SRID)为输入参数的函数。它们将返回对应的几何对象。
GeomFromText()接受任何几何类型的WKT作为其第1个参量。在实施方案中也提供了与类型相关的构造函数,用于构造每一种几何类型的几何值。
- GeomCollFromText(wkt[,srid]) , GeometryCollectionFromText(wkt[,srid])使用其WKT表示和SRID构造GEOMETRYCOLLECTION值。
- GeomFromText(wkt[,srid]) , GeometryFromText(wkt[,srid])使用其WKT表示和SRID构造任何类型的几何值。
- LineFromText(wkt[,srid]) , LineStringFromText(wkt[,srid])使用其WKT表示和SRID构造LINESTRING值。
- MLineFromText(wkt[,srid]) , MultiLineStringFromText(wkt[,srid])使用其WKT表示和SRID构造MULTILINESTRING值。
- MPointFromText(wkt[,srid]) , MultiPointFromText(wkt[,srid])使用其WKT表示和SRID构造MULTIPOINT值。
- MPolyFromText(wkt[,srid]) , MultiPolygonFromText(wkt[,srid])使用其WKT表示和SRID构造MULTIPOLYGON值。
- PointFromText(wkt[,srid])使用其WKT表示和SRID构造POINT值。
- PolyFromText(wkt[,srid]) , PolygonFromText(wkt[,srid])使用其WKT表示和SRID构造POLYGON值。
OpenGIS规范还介绍了用于构造Polygon或MultiPolygon值的可选函数,这些值基于环和封闭LineString值集合的WKT表达式。这些值可以相交。MySQL未实施下述函数:
MySQL提供了众多函数,它们将包含WKT表达式、或可选的空间参考系统ID(SRID)的BLOB作为输入参数。它们返回对应的几何对象。
GeomFromWKB()接受任何几何类型的WKB作为其第1个参量。在实施方案中也提供了与类型相关的构造函数,用于构造每一种几何类型的几何值。
- GeomCollFromWKB(wkb[,srid]) , GeometryCollectionFromWKB(wkb[,srid])使用其WKB表示和SRID构造GEOMETRYCOLLECTION值。
- GeomFromWKB(wkb[,srid]) , GeometryFromWKB(wkb[,srid])使用其WKB表示和SRID构造任意类型的几何值。
- LineFromWKB(wkb[,srid]) , LineStringFromWKB(wkb[,srid])使用其WKB表示和SRID构造LINESTRING值。
- MLineFromWKB(wkb[,srid]) , MultiLineStringFromWKB(wkb[,srid])使用其WKB表示和SRID构造MULTILINESTRING值。
- MPointFromWKB(wkb[,srid]) , MultiPointFromWKB(wkb[,srid])使用其WKB表示和SRID构造MULTIPOINT值。
- MPolyFromWKB(wkb[,srid]) , MultiPolygonFromWKB(wkb[,srid])使用其WKB表示和SRID构造MULTIPOLYGON值。
- PointFromWKB(wkb[,srid])使用其WKB表示和SRID构造POINT值。
- PolyFromWKB(wkb[,srid]) , PolygonFromWKB(wkb[,srid])使用其WKB表示和SRID构造POLYGON值。
OpenGIS规范还介绍了用于构造Polygon或MultiPolygon值的可选函数,这些值基于环和封闭LineString值集合的WKB表达式。这些值可以相交。MySQL未实施下述函数:
注释:MySQL未实施本节所列的函数。
MySQL为创建几何WKB表达式提供了有用的函数集合。本节介绍的函数是对OpenGIS规范的MySQL扩展。这些函数的结果是包含几何值(无SRID)的BLOB值。这些函数的结果可被GeomFromWKB()函数系列中任意函数的第1个参量取代。
- GeometryCollection(g1,g2,…)构造WKB GeometryCollection。如果任何参量不是构造良好的几何对象WKB表达式,返回值为NULL。
- LineString(pt1,pt2,…)从多个WKB Point参量构造WKB LineString值。如果任何参量不是WKB Point,返回值为NULL。如果Point参量的数目小于2,返回值为NULL。
- MultiLineString(ls1,ls2,…)使用WKB LineString参量构造WKB MultiLineString值。如果任何参量不是WKB LineString,返回值为NULL。
- MultiPoint(pt1,pt2,…)使用WKB Point参量构造WKB MultiPoint值。如果任何参量不是WKB Point,返回值为NULL。
- MultiPolygon(poly1,poly2,…)从一组WKB Polygon参量构造WKB MultiPolygon值。如果任何参量不是WKB Polygon,返回值为NULL。
- Point(x,y)使用其坐标构造WKB Point。
- Polygon(ls1,ls2,…)从多个WKB LineString参量构造WKB Polygon值。如果任何参量未表示为LinearRing的WKB形式(即,非封闭和简单LineString),返回值为NULL。
参考:
MySQL中的空间扩展:http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/spatial-extensions-in-mysql.html#gis-wkt-functions
srid:http://baike.baidu.com/link?url=pSYFj8IKaEfxZ8Dk2qdUG9XsJmQpmDP6rFjeggRqWjAb9kKxQH4czbePcW2hvwc9QoIbvLN2yJgC2cOkbMVSXa
postgis介绍:http://www.icanx.cn/p/16