存储地理位置信息
你可以在文档中使用地理位置结构集存储地理位置信息。在集合中添加一个字段,该字段的值是包含 type 和 coordinates 的 GeoJSON 对象。
// 添加一条记录到集合中,包含地理位置信息
collection.add({
data: {
name: 'Place 1',
location: new db.Geo.Point(longitude, latitude)
},
success: res => {
console.log(res);
},
fail: err => {
console.error(err);
}
});
查询附近的地理位置
使用 $near 操作符可以查询附近的地理位置。
// 查询集合中距离指定地理位置最近的文档
collection.where({
location: db.Geo.Point(longitude, latitude),
// 附近的最大距离,单位为米
maxDistance: 1000
}).get({
success: res => {
console.log(res.data);
},
fail: err => {
console.error(err);
}
});
上述示例中,maxDistance 表示查询距离指定地理位置最大的距离,单位为米。
查询地理位置在指定范围内的文档
使用 $geoWithin 操作符可以查询地理位置在指定范围内的文档。
// 查询集合中地理位置在指定范围内的文档
collection.where({
location: db.Geo.LineString([
[startLongitude, startLatitude],
[endLongitude, endLatitude]
])
}).get({
success: res => {
console.log(res.data);
},
fail: err => {
console.error(err);
}
});
上述示例中,LineString 表示一个线段,表示地理位置在指定范围内。
这些是基本的地理位置结构集的操作,你可以根据实际需求进行修改和扩展。详细的文档和 API 可以参考[微信小程序云开发官方文档 - 数据库 - 地理位置](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/geo.html)。
转载请注明出处:http://www.zyzy.cn/article/detail/1246/微信小程序