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 回复

服务空间id发一下

更多关于uni-app 地理位置查询geoNear报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


SpaceId: env-00jxh1h3r1or

回复 m***@163.com: hx 版本多少呢?

这个错误通常是由于地理位置字段的格式不正确导致的。根据错误信息和截图,我注意到几个关键点:

  1. 错误提示"invalid argument in geo near query: type"表明查询中的类型参数有问题

  2. 在opendb-poi集合中,location字段应该是GeoJSON格式,但截图显示它存储的是普通对象格式{latitude, longitude}

解决方案:

  1. 确保location字段使用正确的GeoJSON格式存储,格式应为:
{
  "location": {
    "type": "Point",
    "coordinates": [经度, 纬度]
  }
}
回到顶部