多边形构造规则:
- 第一个线性环必须是外环
- 外环不能自交
- 所有内环必须完全在外环内
- 各个内环间不能相交或重叠,也不能有共同的边
- 外环应为逆时针,内环应为顺时针
示例代码
示例代码
const { MultiPolygon, Polygon, LineString, Point } = db.Geo
db.collection('todos').add({
data: {
description: 'eat an apple',
location: MultiPolygon([
Polygon([
LineString([ Point(50, 50), Point(60, 80), Point(80, 60), Point(50, 50) ]),
]),
Polygon([
LineString([ Point(0, 0), Point(30, 20), Point(20, 30), Point(0, 0) ]),
LineString([ Point(10, 10), Point(16, 14), Point(14, 16), Point(10, 10) ])
]),
])
}
}).then(console.log).catch(console.error)
除了使用接口构造一个 MultiPolygon 外,也可以使用等价的 GeoJSON 的 多边形 (MultiPolygon) 的 JSON 表示,其格式如下:
{
"type": "MultiPolygon",
"coordinates": [
// polygon 1
[
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ]
],
...
// polygon n
[
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ],
...
[ [lng, lat], [lng, lat], [lng, lat], ..., [lng, lat] ]
],
]
}
示例代码
db.collection('todos').add({
data: {
description: 'eat an apple',
location: {
type: 'MultiPolygon',
coordinates: [
[
[ [50, 50], [60, 80], [80, 60], [50, 50] ]
],
[
[ [0, 0], [30, 20], [20, 30], [0, 0] ],
[ [10, 10], [16, 14], [14, 16], [10, 10]]
]
]
}
}
}).then(console.log).catch(console.error)
类型:
GeoPoint
地理位置 “点”
属性
longitude: number
经度
latitude: number
纬度
方法
GeoPoint.toJSON(): Object
返回相应的 GeoJSON 结构的对象
GeoLineString
地理位置的 ”线“。一个线由两个或更多的点有序连接组成。
属性
points: GeoPoint[]
“点” 数组
方法
GeoLineString.toJSON(): Object
返回相应的 GeoJSON 结构的对象
GeoPolygon
地理位置 ”多边形“
属性
lines: GeoLineString[]
“线” 数组
方法
GeoPolygon.toJSON(): Object
返回相应的 GeoJSON 结构的对象
GeoMultiPoint
地理位置的 ”点“ 的集合。一个点集合由一个或更多的点组成。
属性
points: GeoPoint[]
“点” 数组
方法
GeoMultiPoint.toJSON(): Object
返回相应的 GeoJSON 结构的对象
GeoMultiLineString
地理位置 ”线“ 集合。一个线集合由多条线组成。
属性
lines: GeoLineString[]
“线” 数组
方法
GeoMultiLineString.toJSON(): Object
返回相应的 GeoJSON 结构的对象
GeoMultiPolygon
地理位置 ”多边形“ 集合。一个多边形集合由多个多边形组成。
属性
polygons: GeoPolygon[]
“多边形” 数组
方法
GeoMultiPolygon.toJSON(): Object
返回相应的 GeoJSON 结构的对象
标签:微信小程序
相关阅读 >>
更多相关阅读请进入《微信小程序》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者