uni-app 地理位置查询geoNear报错
uni-app 地理位置查询geoNear报错
产品分类
uniCloud/支付宝小程序云
示例代码
const db = uniCloud.database();
let res = await db.collection('opendb-poi').aggregate()
.geoNear({
distanceField: 'distance', // 输出的每个记录中 distance 即是与给定点的距离
spherical: true,
near: new db.Geo.Point(longitude.value, latitude.value),
key: 'location', // 若只有 location 一个地理位置索引的字段,则不需填
includeLocs: 'location', // 若只有 location 一个是地理位置,则不需填
})
.end()
```
## 操作步骤
预期结果
返回地理查询结果
实际结果
Error: code: 100104, error: (BadValue) Failed to determine whether query system can provide a covered projection :: caused by :: invalid argument in geo near query: type
bug描述
支付宝云,地理位置查询geoNear报错如下:
Error: code: 100104, error: (BadValue) Failed to determine whether query system can provide a covered projection :: caused by :: invalid argument in geo near query: type
表中数据如图,
相关链接
更多关于uni-app 地理位置查询geoNear报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
SpaceId: env-00jxh1h3r1or
回复 m***@163.com: hx 版本多少呢?
这个错误通常是由于地理位置字段的格式不正确导致的。根据错误信息和截图,我注意到几个关键点:
-
错误提示"invalid argument in geo near query: type"表明查询中的类型参数有问题
-
在opendb-poi集合中,location字段应该是GeoJSON格式,但截图显示它存储的是普通对象格式{latitude, longitude}
解决方案:
- 确保location字段使用正确的GeoJSON格式存储,格式应为:
{
"location": {
"type": "Point",
"coordinates": [经度, 纬度]
}
}