在微信小程序云开发的数据库 API 中,db.Geo 是用于创建地理位置的对象。通过该对象,你可以在数据库查询中使用地理位置进行条件查询或创建地理位置字段。

以下是 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/微信小程序