“ElasticSearch GEO:地理形状(geo shape)”的版本间差异
跳到导航
跳到搜索
小 (Eijux移动页面ElasticSearch GEO:地理形状至ElasticSearch GEO:地理形状(geo shape),不留重定向) |
无编辑摘要 |
||
第2行: | 第2行: | ||
== 关于 == | == 关于 == | ||
ES 中存储地理形状的数据类型为: '''geo_shape''' | |||
geo_shape支持存储的常用形状数据如下: | |||
# 点(point) | |||
# 圆形(circle) | |||
# 矩形(envelope) | |||
# 多边形 (polygon) | |||
* “点”作为一种特殊的形状,可以在 geo_shape 中存储。 | |||
== 定义'''geo_shape'''类型映射 == | |||
只要将字段类型定义为geo_shape即可。 | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | |||
PUT /example | |||
{ | |||
"mappings": { | |||
"properties": { | |||
"location": { | |||
"type": "geo_shape" // 定义location字段类型为geo_shape | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== 存储一个“点” === | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | |||
POST /example/_doc | |||
{ | |||
"location" : { | |||
"type" : "point", // 存储的图形类型为:point,表示存储一个坐标点 | |||
"coordinates" : [-77.03653, 38.897676] // 坐标点格式: [经度, 纬度] | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== 存储一个“圆形” === | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | |||
POST /example/_doc | |||
{ | |||
"location" : { | |||
"type" : "circle", // 存储的图形类型为: circle, 表示一个圆形 | |||
"coordinates" : [101.0, 1.0], // 圆心坐标,格式: [经度, 纬度] | |||
"radius" : "100m" // 圆的半径,常用单位: m (米), km (千米) | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== 存储一个“矩形” === | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | |||
POST /example/_doc | |||
{ | |||
"location" : { | |||
"type" : "envelope", // 存储的图形类型为: envelope, 表示一个矩形 | |||
"coordinates" : [ | |||
[100.0, 1.0], // 矩形左上角坐标, 坐标格式: [经度, 纬度] | |||
[101.0, 0.0] // 矩形右下角坐标 | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== 存储一个“多边形” === | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | |||
POST /example/_doc | |||
{ | |||
"location": { | |||
"type": "polygon", // 存储的图形类型为: polygon,表示一个多边形 | |||
"coordinates": [ // 支持多个多边形 | |||
[ // 第一个多边形,多边形由下面的坐标数组组成。 | |||
[100, 0], // 第一个坐标点,坐标格式: [经度, 纬度] | |||
[101, 0], | |||
[101, 1], | |||
[100, 1], | |||
[100, 0] // 最后一个坐标点,要跟第一个坐标点相同,这样多边形才能形成闭合 | |||
] | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
* 支持'''存储多个多边形数据'''。 | |||
*: 如果保存多个多边形:则第一个多边形表示'''外轮廓''',第二个多边形表示'''内轮廓''',这样内外多边形轮廓就组成一个空洞的图形,相当于,在多边形中间挖了个坑。【表示内外轮廓之间的部分】 | |||
== 标题文字 == | |||
示例: | |||
<syntaxhighlight lang="JSON" highlight=""> | <syntaxhighlight lang="JSON" highlight=""> | ||
</syntaxhighlight> | </syntaxhighlight> |
2021年5月21日 (五) 18:50的版本
关于
ES 中存储地理形状的数据类型为: geo_shape
geo_shape支持存储的常用形状数据如下:
- 点(point)
- 圆形(circle)
- 矩形(envelope)
- 多边形 (polygon)
- “点”作为一种特殊的形状,可以在 geo_shape 中存储。
定义geo_shape类型映射
只要将字段类型定义为geo_shape即可。
示例:
PUT /example
{
"mappings": {
"properties": {
"location": {
"type": "geo_shape" // 定义location字段类型为geo_shape
}
}
}
}
存储一个“点”
示例:
POST /example/_doc
{
"location" : {
"type" : "point", // 存储的图形类型为:point,表示存储一个坐标点
"coordinates" : [-77.03653, 38.897676] // 坐标点格式: [经度, 纬度]
}
}
存储一个“圆形”
示例:
POST /example/_doc
{
"location" : {
"type" : "circle", // 存储的图形类型为: circle, 表示一个圆形
"coordinates" : [101.0, 1.0], // 圆心坐标,格式: [经度, 纬度]
"radius" : "100m" // 圆的半径,常用单位: m (米), km (千米)
}
}
存储一个“矩形”
示例:
POST /example/_doc
{
"location" : {
"type" : "envelope", // 存储的图形类型为: envelope, 表示一个矩形
"coordinates" : [
[100.0, 1.0], // 矩形左上角坐标, 坐标格式: [经度, 纬度]
[101.0, 0.0] // 矩形右下角坐标
]
}
}
存储一个“多边形”
示例:
POST /example/_doc
{
"location": {
"type": "polygon", // 存储的图形类型为: polygon,表示一个多边形
"coordinates": [ // 支持多个多边形
[ // 第一个多边形,多边形由下面的坐标数组组成。
[100, 0], // 第一个坐标点,坐标格式: [经度, 纬度]
[101, 0],
[101, 1],
[100, 1],
[100, 0] // 最后一个坐标点,要跟第一个坐标点相同,这样多边形才能形成闭合
]
]
}
}
- 支持存储多个多边形数据。
- 如果保存多个多边形:则第一个多边形表示外轮廓,第二个多边形表示内轮廓,这样内外多边形轮廓就组成一个空洞的图形,相当于,在多边形中间挖了个坑。【表示内外轮廓之间的部分】
标题文字
示例: