Skip to content

Commit 1ef0cf3

Browse files
authored
docs: add geometry functions (#3106)
* docs: add geometry functions * fix * fix * add cn docs
1 parent 8039037 commit 1ef0cf3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1652
-272
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: GEO_DISTANCE
3+
---
4+
5+
返回地球上两点之间的近似距离(米)。点使用经纬度(度)表示,距离基于 WGS84 近似计算。
6+
7+
## 语法
8+
9+
```sql
10+
GEO_DISTANCE(<lon1>, <lat1>, <lon2>, <lat2>)
11+
```
12+
13+
## 参数
14+
15+
| 参数 | 描述 |
16+
|-----------|-------------|
17+
| `<lon1>` | 第一个点的经度(度)。 |
18+
| `<lat1>` | 第一个点的纬度(度)。 |
19+
| `<lon2>` | 第二个点的经度(度)。 |
20+
| `<lat2>` | 第二个点的纬度(度)。 |
21+
22+
## 返回类型
23+
24+
Float32。
25+
26+
## 示例
27+
28+
```sql
29+
SELECT GEO_DISTANCE(55.755831, 37.617673, -55.755831, -37.617673) AS distance;
30+
31+
╭────────────╮
32+
│ distance │
33+
├────────────┤
34+
14128353.0
35+
╰────────────╯
36+
```
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: GREAT_CIRCLE_ANGLE
3+
---
4+
5+
返回球面上两点之间的中心角(度)。点使用经纬度(度)表示。
6+
7+
## 语法
8+
9+
```sql
10+
GREAT_CIRCLE_ANGLE(<lon1>, <lat1>, <lon2>, <lat2>)
11+
```
12+
13+
## 参数
14+
15+
| 参数 | 描述 |
16+
|-----------|-------------|
17+
| `<lon1>` | 第一个点的经度(度)。 |
18+
| `<lat1>` | 第一个点的纬度(度)。 |
19+
| `<lon2>` | 第二个点的经度(度)。 |
20+
| `<lat2>` | 第二个点的纬度(度)。 |
21+
22+
## 返回类型
23+
24+
Float32。
25+
26+
## 示例
27+
28+
```sql
29+
SELECT GREAT_CIRCLE_ANGLE(55.755831, 37.617673, -55.755831, -37.617673) AS angle;
30+
31+
╭───────────╮
32+
│ angle │
33+
├───────────┤
34+
127.05919
35+
╰───────────╯
36+
```
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: GREAT_CIRCLE_DISTANCE
3+
---
4+
5+
返回球面上两点之间的大圆距离(米)。点使用经纬度(度)表示。
6+
7+
## 语法
8+
9+
```sql
10+
GREAT_CIRCLE_DISTANCE(<lon1>, <lat1>, <lon2>, <lat2>)
11+
```
12+
13+
## 参数
14+
15+
| 参数 | 描述 |
16+
|-----------|-------------|
17+
| `<lon1>` | 第一个点的经度(度)。 |
18+
| `<lat1>` | 第一个点的纬度(度)。 |
19+
| `<lon2>` | 第二个点的经度(度)。 |
20+
| `<lat2>` | 第二个点的纬度(度)。 |
21+
22+
## 返回类型
23+
24+
Float32。
25+
26+
## 示例
27+
28+
```sql
29+
SELECT GREAT_CIRCLE_DISTANCE(55.755831, 37.617673, -55.755831, -37.617673) AS distance;
30+
31+
╭────────────╮
32+
│ distance │
33+
├────────────┤
34+
14128353.0
35+
╰────────────╯
36+
```

docs/cn/sql-reference/20-sql-functions/09-geospatial-functions/index.md

Lines changed: 83 additions & 65 deletions
Large diffs are not rendered by default.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: POINT_IN_ELLIPSES
3+
---
4+
5+
如果点位于任意一个给定椭圆内则返回 1,否则返回 0。每个椭圆由中心点与长短半轴定义。
6+
7+
## 语法
8+
9+
```sql
10+
POINT_IN_ELLIPSES(x, y, x1, y1, a1, b1 [, x2, y2, a2, b2, ...])
11+
```
12+
13+
## 参数
14+
15+
| 参数 | 描述 |
16+
|-----------|-------------|
17+
| `x`, `y` | 待测试点的坐标。 |
18+
| `x1`, `y1` | 第一个椭圆的中心点。 |
19+
| `a1`, `b1` | 第一个椭圆的长半轴与短半轴长度。 |
20+
| `x2`, `y2`, `a2`, `b2`, ... | 可选的其他椭圆,定义方式相同。 |
21+
22+
## 返回类型
23+
24+
UInt8(1 表示 true,0 表示 false)。
25+
26+
## 示例
27+
28+
```sql
29+
SELECT POINT_IN_ELLIPSES(10, 10, 10, 9.1, 1, 0.9999) AS inside;
30+
31+
╭────────╮
32+
│ inside │
33+
├────────┤
34+
1
35+
╰────────╯
36+
```

docs/cn/sql-reference/20-sql-functions/09-geospatial-functions/st-area.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ title: ST_AREA
33
---
44
import FunctionDescription from '@site/src/components/FunctionDescription';
55

6-
<FunctionDescription description="Introduced or updated: v1.2.555"/>
6+
<FunctionDescription description="引入或更新于:v1.2.555"/>
77

8-
返回 GEOMETRY 或 GEOGRAPHY 对象的面积。对于 GEOMETRY 类型,使用基于[鞋带公式](https://en.wikipedia.org/wiki/Shoelace_formula)的平面面积计算;对于 GEOGRAPHY 类型,则采用 [Karney (2013)](https://arxiv.org/pdf/1109.4448.pdf) 描述的方法,在地球椭球模型上计算测地面积。
8+
返回 GEOMETRY 或 GEOGRAPHY 对象的面积。对于 GEOMETRY 类型,使用基于[高斯面积公式](https://en.wikipedia.org/wiki/Shoelace_formula)的平面面积计算;对于 GEOGRAPHY 类型,则采用 [Karney (2013)](https://arxiv.org/pdf/1109.4448.pdf) 描述的方法,在地球椭球模型上计算测地面积。
99

1010
## 语法
1111

@@ -15,7 +15,7 @@ ST_AREA(<geometry_or_geography>)
1515

1616
## 参数
1717

18-
| 参数 | 说明 |
18+
| 参数 | 说明 |
1919
|---------------------------|-----------------------------------------------|
2020
| `<geometry_or_geography>` | 类型为 GEOMETRY 或 GEOGRAPHY 的表达式。 |
2121

docs/cn/sql-reference/20-sql-functions/09-geospatial-functions/st-asewkb.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,28 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
55

66
<FunctionDescription description="引入或更新于:v1.2.436"/>
77

8-
将 GEOMETRY 对象转换为 [EWKB(Extended Well-Known Binary)](https://postgis.net/docs/ST_GeomFromEWKB.html) 格式表示
8+
将 GEOMETRY 或 GEOGRAPHY 对象转换为 [EWKB(extended well-known-binary)](https://postgis.net/docs/ST_GeomFromEWKB.html) 表示形式
99

1010
## 语法
1111

1212
```sql
13-
ST_ASEWKB(<geometry>)
13+
ST_ASEWKB(<geometry_or_geography>)
1414
```
1515

1616
## 参数
1717

18-
| 参数 | 说明 |
19-
|--------------|------------------------------------------|
20-
| `<geometry>` | 参数必须是 GEOMETRY 类型的表达式。 |
18+
| 参数 | 描述 |
19+
|--------------|------------------------------------------------------|
20+
| `<geometry_or_geography>` | 参数必须是 GEOMETRY 或 GEOGRAPHY 类型的表达式。 |
2121

2222
## 返回类型
2323

2424
Binary。
2525

2626
## 示例
2727

28+
### GEOMETRY 示例
29+
2830
```sql
2931
SELECT
3032
ST_ASEWKB(
@@ -51,4 +53,21 @@ SELECT
5153
├────────────────────────────────────────────────────┤
5254
│ 0101000020E61000006666666666965EC06666666666C64240 │
5355
└────────────────────────────────────────────────────┘
54-
```
56+
```
57+
58+
### GEOGRAPHY 示例
59+
60+
```sql
61+
SELECT
62+
ST_ASEWKB(
63+
ST_GEOGFROMWKT(
64+
'SRID=4326;POINT(-122.35 37.55)'
65+
)
66+
) AS pipeline_ewkb;
67+
68+
╭────────────────────────────────────────────────────╮
69+
│ pipeline_ewkb │
70+
├────────────────────────────────────────────────────┤
71+
│ 0101000020E61000006666666666965EC06666666666C64240 │
72+
╰────────────────────────────────────────────────────╯
73+
```

docs/cn/sql-reference/20-sql-functions/09-geospatial-functions/st-asewkt.md

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,28 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
55

66
<FunctionDescription description="引入或更新于:v1.2.436"/>
77

8-
将 GEOMETRY 对象转换为 [EWKT(Extended Well-Known Text)](https://postgis.net/docs/ST_GeomFromEWKT.html) 格式的表示
8+
将 GEOMETRY 或 GEOGRAPHY 对象转换为 [EWKT(extended well-known-text)](https://postgis.net/docs/ST_GeomFromEWKT.html) 表示形式
99

1010
## 语法
1111

1212
```sql
13-
ST_ASEWKT(<geometry>)
13+
ST_ASEWKT(<geometry_or_geography>)
1414
```
1515

1616
## 参数
1717

18-
| 参数 | 描述 |
19-
|--------------|------------------------------------|
20-
| `<geometry>` | 参数必须是 GEOMETRY 类型的表达式。 |
18+
| 参数 | 描述 |
19+
|--------------|------------------------------------------------------|
20+
| `<geometry_or_geography>` | 参数必须是 GEOMETRY 或 GEOGRAPHY 类型的表达式。 |
2121

2222
## 返回类型
2323

24-
字符串
24+
String
2525

2626
## 示例
2727

28+
### GEOMETRY 示例
29+
2830
```sql
2931
SELECT
3032
ST_ASEWKT(
@@ -51,4 +53,21 @@ SELECT
5153
├────────────────────────────────┤
5254
│ SRID=4326;POINT(-122.35 37.55) │
5355
└────────────────────────────────┘
54-
```
56+
```
57+
58+
### GEOGRAPHY 示例
59+
60+
```sql
61+
SELECT
62+
ST_ASEWKT(
63+
ST_GEOGFROMWKT(
64+
'SRID=4326;POINT(-122.35 37.55)'
65+
)
66+
) AS pipeline_ewkt;
67+
68+
╭────────────────────────────────╮
69+
│ pipeline_ewkt │
70+
├────────────────────────────────┤
71+
│ SRID=4326;POINT(-122.35 37.55) │
72+
╰────────────────────────────────╯
73+
```

docs/cn/sql-reference/20-sql-functions/09-geospatial-functions/st-asgeojson.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,28 @@ import FunctionDescription from '@site/src/components/FunctionDescription';
55

66
<FunctionDescription description="引入或更新于:v1.2.427"/>
77

8-
将 GEOMETRY 对象转换为 [GeoJSON](https://geojson.org/) 表示形式。
8+
将 GEOMETRY 或 GEOGRAPHY 对象转换为 [GeoJSON](https://geojson.org/) 表示形式。
99

1010
## 语法
1111

1212
```sql
13-
ST_ASGEOJSON(<geometry>)
13+
ST_ASGEOJSON(<geometry_or_geography>)
1414
```
1515

1616
## 参数
1717

18-
| 参数 | 描述 |
19-
|--------------|------------------------------------|
20-
| `<geometry>` | 参数必须是 GEOMETRY 类型的表达式。 |
18+
| 参数 | 描述 |
19+
|--------------|------------------------------------------------------|
20+
| `<geometry_or_geography>` | 参数必须是 GEOMETRY 或 GEOGRAPHY 类型的表达式。 |
2121

2222
## 返回类型
2323

2424
Variant。
2525

2626
## 示例
2727

28+
### GEOMETRY 示例
29+
2830
```sql
2931
SELECT
3032
ST_ASGEOJSON(
@@ -38,4 +40,21 @@ SELECT
3840
├─────────────────────────────────────────────────────────────────────────┤
3941
│ {"coordinates":[[400000,6000000],[401000,6010000]],"type":"LineString"} │
4042
└─────────────────────────────────────────────────────────────────────────┘
41-
```
43+
```
44+
45+
### GEOGRAPHY 示例
46+
47+
```sql
48+
SELECT
49+
ST_ASGEOJSON(
50+
ST_GEOGFROMWKT(
51+
'SRID=4326;POINT(-122.35 37.55)'
52+
)
53+
) AS pipeline_geojson;
54+
55+
╭────────────────────────────────────────────────╮
56+
│ pipeline_geojson │
57+
├────────────────────────────────────────────────┤
58+
│ {"coordinates":[-122.35,37.55],"type":"Point"} │
59+
╰────────────────────────────────────────────────╯
60+
```

0 commit comments

Comments
 (0)