以下是 db.Geo 的基本使用示例:
const db = wx.cloud.database();
// 创建一个地理位置对象,表示经度 113.324520 和纬度 23.099994
const geoPoint = db.Geo.Point(113.324520, 23.099994);
// 查询集合中距离指定位置一定范围内的文档
db.collection('myCollection').where({
location: db.command.geoNear({
geometry: geoPoint,
maxDistance: 5000, // 5000 米范围内的文档
minDistance: 0 // 最小距离为 0,即指定位置本身
})
}).get({
success: res => {
console.log('符合条件的文档:', res.data);
},
fail: err => {
console.error(err);
}
});
在上述示例中,db.Geo.Point 接受经度和纬度两个参数,创建了一个地理位置对象 geoPoint。然后在查询集合时,通过 db.command.geoNear 方法进行地理位置的条件查询,查找距离指定位置一定范围内的文档。
创建地理位置字段
你也可以将地理位置对象赋值给文档中的字段,创建地理位置字段,例如:
const db = wx.cloud.database();
// 创建一个地理位置对象,表示经度 113.324520 和纬度 23.099994
const geoPoint = db.Geo.Point(113.324520, 23.099994);
// 创建包含地理位置字段的文档
db.collection('myCollection').add({
data: {
name: 'Location Doc',
location: geoPoint
},
success: res => {
console.log('文档创建成功:', res);
},
fail: err => {
console.error('文档创建失败:', err);
}
});
在上述示例中,通过 db.Geo.Point 创建了一个地理位置对象,并将其赋值给文档中的 location 字段,实现了在文档中存储地理位置信息。
更详细的文档可以在[微信官方文档 - 云开发数据库](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/geo.html)中找到。
转载请注明出处:http://www.zyzy.cn/article/detail/1177/微信小程序