SAP Sybase SQL Anywhere 16.0: http://dcx.sap.com/index.html#sa160/zh/sqlanywhere_zh16/help_top_index.htm
Geometry:http://dcx.sap.com/1201/zh/dbspatial/pg-api-spatial-st-geometry-type.html
MySQL8中文手册:MySQL8中文手册
MySQL函数和运算符:空间函数参考 - 空间分析功能
MySQL中的空间扩展:第19章:MySQL中的空间扩展_MySQL 中文文档
ArcMap ST_Geometry :与 ST_Geometry 配合使用的 SQL 函数—帮助 | 文档
MySQL Geometry函数:MySQL: Geometry Class Reference
-- 面包含点:1:包含 0:不包含
SELECT ST_Contains(ST_GeomFromText('POLYGON((121.044 30.594, 121.046 30.59, 121.046 30.5948, 121.044 30.594))'),Point(0,0));
-- 多边形包含点
SET @point1=POINT(121.575733,25.309111);
SET @point2=POINT(21.575733,25.309111);
SET @radius=10*1852*180/(6371000*PI()); -- 10海里
SELECT ST_Contains(ST_BUFFER(@point, @radius),@point2); -- 0:不包含 1:包含
-- 线段的起点
SELECT ST_StartPoint(ST_GeomFromText('LINESTRING(121.044 30.594, 121.046 30.59, 121.046 30.5948, 121.044 30.594)'));
-- 线段的点数
SELECT ST_NumPoints(ST_GeomFromText('LINESTRING(0 0, 1 1)'));
-- 两点之间的距离
SELECT ST_DISTANCE(POINT(1,1),POINT(0,0));
-- 以坐标点画圆和港口坐标是否包含和距离
SET @point1=POINT(103.846488,1.28085);
SET @radius=10*1852*180/(6371000*PI()); -- 10海里
SELECT ST_Contains(ST_BUFFER(@point1,@radius),port_lonlat) AS contain, port_id FROM t_port_main ORDER BY contain DESC LIMIT 10; -- 点画圆和港口
SELECT ST_Contains(ST_BUFFER(@point1,@radius),port_lonlat) AS contain, port_id FROM t_port_main WHERE ST_Contains(ST_BUFFER(@point1,@radius),port_lonlat)=1 LIMIT 10;
SELECT ST_Distance(ST_BUFFER(@point1,@radius),port_lonlat) AS contain, port_id FROM t_port_main ORDER BY contain ASC LIMIT 10;
SELECT ST_Distance(ST_BUFFER(ST_PointFromText(concat('POINT(',longitude_decimal,' ',latitude_decimal,')')),radius*180/(6371000*PI())),
ST_PointFromText('POINT(103.846488 1.28085)'))*6371000*PI()/180 AS distance,port_id FROM t_port ORDER BY distance LIMIT 10;
-- 距离换算
## 1海里=1.852公里
SET @KM=10,@NM=10; -- 10公里、10海里
SET @radius1=@KM*180/(6371000*PI()); -- 10公里
SET @radius2=@KM*1852*180/(6371000*PI()); -- 10海里
SELECT @radius1,@radius2;
-- 点生成buffer
SELECT ST_BUFFER(POINT(113,22),3)
-- 线段生成buffer
SELECT ST_BUFFER(ST_GeomFromText('LINESTRING(0 0,0 5,5 5)'),2)
-- 线段融合
SELECT ST_AsText(ST_Union(ST_GeomFromText('LineString(113 22, 113 30)'), ST_GeomFromText('LineString(112 30, 113 22)')));
-- 线段生成buffer再融合(多边形融合)
SET @g1 = ST_BUFFER(ST_GeomFromText('LINESTRING(113 22, 113 30)'),2);
SET @g2 = ST_BUFFER(ST_GeomFromText('LINESTRING(112 30, 113 22)'),2);
SELECT ST_AsText(ST_Union(@g1, @g2));
-- 多边形和多边形多次融合
SET @radius = 5*1852*180/(6371000*PI()); -- 五海里为buffer宽度
SET @g1 = ST_BUFFER(ST_GeomFromText('LINESTRING(110 22, 113 30)'),@radius);
SET @g2 = ST_BUFFER(ST_GeomFromText('LINESTRING(120 30, 111 22)'),@radius);
SET @g3 = ST_BUFFER(ST_GeomFromText('LINESTRING(109 10, 125 35)'),@radius);
SET @g4 = ST_BUFFER(ST_GeomFromText('LINESTRING(109 10, 125 35)'),@radius);
SET @g5 = ST_BUFFER(ST_GeomFromText('LINESTRING(109 10, 125 35)'),@radius);
SET @g6 = ST_BUFFER(ST_GeomFromText('LINESTRING(109 10, 125 35)'),@radius);
SET @u1 = ST_GeomFromText(ST_AsText(ST_Union(@g1, @g2)));
SET @u2 = ST_GeomFromText(ST_AsText(ST_Union(@u1, @g3)));
SET @u3 = ST_GeomFromText(ST_AsText(ST_Union(@u2, @g4)));
SET @u4 = ST_GeomFromText(ST_AsText(ST_Union(@u3, @g5)));
SELECT ST_AsText(ST_Union(@u4, @g6));
名称 | 描述 | |
---|---|---|
1 | ST_StartPoint() | LineString的起始点 |
2 | ST_EndPoint() | LineString的终点 |
3 | ST_Transform() | 变换几何的坐标 |
4 | ST_GeoHash() | 产生geohash值 |
5 | ST_LongFromGeoHash() | 从geohash值返回经度 |
6 | ST_LatFromGeoHash() | 从geohash值返回纬度 |
7 | ST_GeomFromGeoJSON() | 从GeoJSON对象生成几何 |
8 | Polygon() | 从LineString参数构造多边形 |
9 | ST_PointN() | 从LineString返回第N个点 |
10 | MultiLineString() | 从LineString值构造MultiLineString |
11 | LineString() | 从Point值构造LineString |
12 | MultiPoint() | 从Point值构造MultiPoint |
13 | MultiPolygon() | 从Polygon值构造MultiPolygon |
14 | ST_GeomFromWKB(), ST_GeometryFromWKB() | 从WKB返回几何 |
15 | ST_GeomCollFromWKB(), ST_GeometryCollectionFromWKB() | 从WKB返回几何集合 |
16 | ST_LineFromWKB(), ST_LineStringFromWKB() | 从WKB构造LineString |
17 | ST_MLineFromWKB(), ST_MultiLineStringFromWKB() | 从WKB构造MultiLineString |
18 | ST_MPointFromWKB(), ST_MultiPointFromWKB() | 从WKB构造MultiPoint |
19 | ST_MPolyFromWKB(), ST_MultiPolygonFromWKB() | 从WKB构造MultiPolygon |
20 | ST_PointFromWKB() | 从WKB构造点 |
21 | ST_PolyFromWKB(), ST_PolygonFromWKB() | 从WKB构造多边形 |
22 | ST_GeomFromText(), ST_GeometryFromText() | 从WKT返回几何 |
23 | ST_GeomCollFromText(),ST_GeometryCollectionFromText(),ST_GeomCollFromTxt() | 从WKT返回几何集合 |
24 | ST_PointFromText() | 从WKT构建点 |
25 | ST_LineFromText(), ST_LineStringFromText() | 从WKT构造LineString |
26 | ST_MLineFromText(), ST_MultiLineStringFromText() | 从WKT构造MultiLineString |
27 | ST_MPointFromText(), ST_MultiPointFromText() | 从WKT构造MultiPoint |
28 | ST_MPolyFromText(), ST_MultiPolygonFromText() | 从WKT构造MultiPolygon |
29 | ST_PolyFromText(), ST_PolygonFromText() | 从WKT构造多边形 |
30 | GeomCollection() | 从几何构造几何集合 |
31 | GeometryCollection() | 从几何构造几何集合 |
32 | ST_GeometryN() | 从几何集合中返回第N个几何 |
33 | ST_AsGeoJSON() | 从几何体生成GeoJSON对象 |
34 | ST_AsBinary(), ST_AsWKB() | 从内部几何格式转换为WKB |
35 | ST_AsText(), ST_AsWKT() | 从内部几何格式转换为WKT |
36 | Point() | 从坐标构造点 |
37 | ST_Length() | 返回LineString的长度 |
38 | ST_NumPoints() | 返回LineString中的点数 |
39 | ST_X() | 返回Point的X坐标 |
40 | ST_Y() | 返回Point的Y坐标 |
41 | ST_Longitude() | 返回Point的经度 |
42 | ST_Latitude() | 返回Point的纬度 |
43 | ST_InteriorRingN() | 返回Polygon的第N个内环 |
44 | ST_ExteriorRing() | 返回Polygon的外环 |
45 | ST_Area() | 返回Polygon或MultiPolygon面积 |
46 | ST_Union() | 返回点集两个几何的并集 |
47 | ST_SymDifference() | 返回点设置两个几何的对称差异 |
48 | ST_Intersection() | 返回点设置两个几何的交集 |
49 | ST_NumInteriorRing(), ST_NumInteriorRings() | 返回多边形内圈的数量 |
50 | ST_Envelope() | 返回几何的MBR |
51 | ST_SRID() | 返回几何的空间参考系统ID |
52 | ST_NumGeometries() | 返回几何集合中的几何数量 |
53 | ST_GeometryType() | 返回几何类型的名称 |
54 | ST_ConvexHull() | 返回几何体的凸包 |
55 | ST_Simplify() | 返回简化几何 |
56 | ST_Buffer() | 返回距离几何体的给定距离内的点的几何 |
57 | ST_Validate() | 返回验证的几何体 |
58 | ST_Centroid() | 返回质心作为一个点 |
59 | ST_Dimension() | 几何尺寸 |
60 | ST_IsClosed() | 几何是否封闭且简单 |
61 | ST_IsSimple() | 几何是否简单 |
62 | ST_IsValid() | 几何是否有效 |
63 | ST_PointFromGeoHash() | 将geohash值转换为POINT值 |
64 | ST_SwapXY() | 交换X / Y坐标的返回参数 |
65 | ST_MakeEnvelope() | 两点左右的矩形 |
66 | MBREquals() | 两个几何的MBR是否相等 |
67 | MBRIntersects() | 两个几何的MBR是否相交 |
68 | MBROverlaps() | 两个几何的MBR是否重叠 |
69 | ST_Difference() | 两个几何的返回点集差异 |
70 | MBRDisjoint() | 两个几何形状的MBR是否不相交 |
71 | ST_Distance_Sphere() | 两个几何形状之间的最小地球距离 |
72 | MBRTouches() | 两种几何形状的MBR是否接触 |
73 | ST_Buffer_Strategy() | 为ST_Buffer()生成策略选项 |
74 | MBRCoveredBy() | 一个MBR是否被另一个MBR覆盖 |
75 | MBRCovers() | 一个MBR是否涵盖另一个MBR |
76 | MBRContains() | 一个几何的MBR是否包含另一个几何的MBR |
77 | MBRWithin() | 一个几何的MBR是否在另一个几何的MBR内 |
78 | ST_Contains() | 一个几何是否包含另一个 |
79 | ST_Touches() | 一个几何是否接触另一个 |
80 | ST_Disjoint() | 一个几何是否与另一个几何脱节 |
81 | ST_Equals() | 一个几何是否与另一个几何相等 |
82 | ST_Crosses() | 一个几何是否与另一个几何相交 |
83 | ST_Intersects() | 一个几何是否与另一个相交 |
84 | ST_Overlaps() | 一个几何是否与另一个重叠 |
85 | ST_Within() | 一个几何是否在另一个之内 |
86 | ST_Distance() | 一个几何与另一个几何的距离 |
87 | ST_IsEmpty() | 占位符功能 |
ST_Geometry 的方法:
ST_Affine | ST_AsBinary | ST_AsGML | ST_AsGeoJSON |
---|---|---|---|
ST_AsKML | ST_AsSVG | ST_AsSVGAggr | ST_AsText |
ST_AsWKB | ST_AsWKT | ST_AsXML | ST_Boundary |
ST_Contains | ST_ContainsFilter | ST_ConvexHull | ST_ConvexHullAggr |
ST_CoordDim | ST_CoveredBy | ST_CoveredByFilter | ST_Covers |
ST_CoversFilter | ST_Crosses | ST_Difference | ST_Dimension |
ST_Disjoint | ST_Distance | ST_Envelope | ST_EnvelopeAggr |
ST_Equals | ST_EqualsFilter | ST_GeomFromBinary | ST_GeomFromShape |
ST_GeomFromText | ST_GeomFromWKB | ST_GeomFromWKT | ST_GeometryType |
ST_GeometryTypeFromBaseType | ST_Intersection | ST_IntersectionAggr | ST_Intersects |
ST_IntersectsFilter | ST_IntersectsRect | ST_Is3D | ST_IsEmpty |
ST_IsMeasured | ST_IsSimple | ST_IsValid | ST_LatNorth |
ST_LatSouth | ST_LinearHash | ST_LinearUnHash | ST_LoadConfigurationData |
ST_LongEast | ST_LongWest | ST_MMax | ST_MMin |
ST_OrderingEquals | ST_Overlaps | ST_Relate | ST_Reverse |
ST_SRID | ST_SRIDFromBaseType | ST_SnapToGrid | ST_SymDifference |
ST_ToCircular | ST_ToCompound | ST_ToCurve | ST_ToCurvePoly |
ST_ToGeomColl | ST_ToLineString | ST_ToMultiCurve | ST_ToMultiLine |
ST_ToMultiPoint | ST_ToMultiPolygon | ST_ToMultiSurface | ST_ToPoint |
ST_ToPolygon | ST_ToSurface | ST_Touches | ST_Transform |
ST_Union | ST_UnionAggr | ST_Within | ST_WithinDistance |
ST_WithinDistanceFilter | ST_WithinFilter | ST_XMax | ST_XMin |
ST_YMax | ST_YMin | ST_ZMax | ST_ZMin |