mysql数据库geometry,point,polygon类型,地理空间数据
库查询操作
MySQL空间扩展⽀持⼏何数据的存储,⽣成,分析,优化。
1、空间数据类型(存储)
MySQL⽀持以下数据类型:
c++while循环语句用法Geometry:可以存储所有的⼏何类型
Point:简单点
LINESTRING:简单线
POLYGON:简单⾯
MULTIPOINT:多点
MULITILINESTRING:多线
MUILITIPOLYGON:很多⽅⾯
GEOMETRYCOLLECTION:任何⼏何集合
在创建表的时候可以根据需求选择合适的⼏何类型存储你的空间数据。
2、空间数据类型的⽣成
MySQ L⽀持WKB,WKT数据⽣成空间数据类型,提供如下函数:
GeomFromText(wtk [,srid)PointFromText LINESTRINGFROMTEXT ......
GeomFromWKB(wtk [,srid)GeomFromWKB GeomFromWKB ......
3、空间运算分析
ajax原理及步骤MYSQL以函数的形式提供对空间运算的⽀持:
ST_Buffer ST_Contains ST_Distance ST_Intersects MBRIntersects ........
4、优化
源代码结局解说
为了优化查询,MySQL提供空间索引⽀持,⽬前仅在MyISAM数据引擎下提供空间索引⽀持。
创建空间索引格式如下:
CREATE SPATIAL INDEX t_geo_test_sidx ON t_geo_test(SHAPE);
可以看到⽐普通索引多了⼀个关键字 Spatial,删除空间索引的语句与删除普通索引的语句是⼀样的。
5、测试
建表:
CREATE TABLE t_geo_test(
`ID` int(11)NOT NULL,
`SHAPE`⼏何不是NULL,
主键(`ID`)怎么注释一段代码
)
ENGINE = MyISAM数据
DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci
CHECKSUM = 0
ROW_FORMAT = DYNAMIC
DELAY_KEY_WRITE = 0
;
插⼊数据:
插⼊到t_geo_test中选择fid,geomfromtext(shape)来⾃zjgis.g_bd_substation_p;查询:
通过SQL解释可以看到TYPE:ALL KEY:NULL 代表全表扫描
建索引:
CREATE SPATIAL INDEX t_geo_test_sidx ON t_geo_test(SHAPE);
可以看到TYPE:range KEY:t_geo_tesx_sidx 表⽰使⽤了空间索引t_geo_tesx_sidx 在数据量⽐较⼤的时候,空间索引⾄关重要。
建索引前查询时间:
sql dateformat用法建索引后查询时间:
虽然数据不多(3500左右),查询耗时还是有所差距的。
6、附:MySQL空间相关函数⼀览表
下表列出了每个空间函数,并提供了每个空间函数的简短描述。名称描述
1,Area()返回Polygon或MultiPolygon区域mysql语句分类
2,AsBinary(),AsWKB()从内部⼏何格式转换为WKB 3,AsText(),AsWKT()从内部⼏何格式转换为WKT
4,Buffer()返回距离⼏何体给定距离内的点的⼏何
5,Centroid()以质⼼为点
6,Contains()⼀个⼏何的MBR是否包含另⼀个的MBR
7,Crosses()⼀个⼏何是否与另⼀个⼏何相交
8,Dimension()⼏何尺⼨
9,Disjoint()两个⼏何的MBR是否不相交
10,EndPoint()LineString的结束点
11,Envelope()返回⼏何体的MBR
12,Equals()两个⼏何的MBR是否相等
13,ExteriorRing()返回Polygon的外环
14,GeomCollFromText(),
15,GeometryCollectionFromText()
16,从WKT返回⼏何图形集 Return geometry collection from WKT 17,GeomCollFromWKB(),
18,GeometryCollectionFromWKB()
19,从WKB返回⼏何集合 Return geometry collection from WKB 20,GeometryCollection()从⼏何构造⼏何集合
21,GeometryN()从⼏何集合中返回第N个⼏何
22,GeometryType()返回⼏何类型的名称
23,GeomFromText(),
24,GeometryFromText()
25,从WKT返回⼏何 Return geometry from WKT
26,GeomFromWKB(),
27,GeometryFromWKB()
28,从WKB返回⼏何 Return geometry from WKB
29,GLength()返回LineString的长度
30,InteriorRingN()返回Polygon的第N个内环
31,Intersects()两个⼏何的MBR是否相交
32,IsClosed()⼏何是否闭合且简单
33,IsEmpty()占位符功能
34,IsSimple()⼏何是否简单
35,LineFromText(),
36,LineStringFromText()
37,从WKT构造LineString Construct LineString from WKT
38,LineFromWKB(),
39 LineStringFromWKB()
40,从WKB构造LineString Construct LineString from WKB
41,LineString()从Point值构造LineString
42,MBRContains()⼀个⼏何的MBR是否包含另⼀个的MBR
43,MBRDisjoint()两个⼏何的MBR是否不相交
44,MBREqual()两个⼏何的MBR是否相等
45,MBRIntersects()两个⼏何的MBR是否相交
46,MBROverlaps()两个⼏何的MBR是否重叠
47,MBRTouches()两个⼏何的MBR是否接触
48,MBRWithin()⼀个⼏何的MBR是否在另⼀个⼏何的MBR内49,MLineFromText(),
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论