W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
支持端:小程序 , 云函數(shù) , Web
按從近到遠(yuǎn)的順序,找出字段值在給定點(diǎn)的附近的記錄。
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 |
---|---|---|---|---|
geometry | GeoPoint | 是 | 地理位置點(diǎn) (Point) | |
maxDistance | number | 否 | 選填,最大距離,單位為米 | |
minDistance | number | 否 | 選填,最小距離,單位為米 |
需對(duì)查詢字段建立地理位置索引
找出離給定位置 1 公里到 5 公里范圍內(nèi)的記錄
const _ = db.command
db.collection('restaurants').where({
location: _.geoNear({
geometry: db.Geo.Point(113.323809, 23.097732),
minDistance: 1000,
maxDistance: 5000,
})
}).get()
支持端:小程序 , 云函數(shù) , Web
找出字段值在指定區(qū)域內(nèi)的記錄,無(wú)排序。指定的區(qū)域必須是多邊形(Polygon)或多邊形集合(MultiPolygon)。
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 |
---|---|---|---|---|
geometry | Object | 是 | 地理信息結(jié)構(gòu),Polygon,MultiPolygon,或 { centerSphere } |
需對(duì)查詢字段建立地理位置索引
const _ = db.command
const { Point, LineString, Polygon } = db.Geo
db.collection('restaurants').where({
location: _.geoWithin({
geometry: Polygon([
LineString([
Point(0, 0),
Point(3, 2),
Point(2, 3),
Point(0, 0)
])
]),
})
})
可以不用 geometry 而用 centerSphere 構(gòu)建一個(gè)圓形。
centerShpere 從公共庫(kù) 2.8.3 開始支持
centerSphere 對(duì)應(yīng)的值的定義是:[ [經(jīng)度, 緯度], 半徑 ]
半徑需以弧度計(jì),比如需要 10km 的半徑,則用距離除以地球半徑 6378.1km 得出的數(shù)字。
const _ = db.command
db.collection('restaurants').where({
location: _.geoWithin({
centerSphere: [
[-88, 30],
10 / 6378.1,
]
})
})
支持端:小程序 , 云函數(shù) , Web
找出給定的地理位置圖形相交的記錄
屬性 | 類型 | 默認(rèn)值 | 必填 | 說(shuō)明 |
---|---|---|---|---|
geometry | Object | 是 | 地理信息結(jié)構(gòu),Point |
需對(duì)查詢字段建立地理位置索引
const _ = db.command
const { Point, LineString, Polygon } = db.Geo
db.collection('restaurants').where({
location: _.geoIntersects({
geometry: Polygon([
LineString([
Point(0, 0),
Point(3, 2),
Point(2, 3),
Point(0, 0)
])
]),
})
})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: