GeoLocation API针对EVE RESTful API进行调用

时间:2014-03-10 14:37:49

标签: mongodb rest geojson eve

我可以轻松地将地理位置数据存储到运行Eve RESTful API Server的MongoDB中。 所以我存储的数据如下:

loc : {
  lng: 13.01111,
  lat: 51.01111
}

验证等效果很好。

但是:我无法找到从REST API中获取地理定位数据的方法。 那里有sample queries在命令行工作正常,但似乎没有办法以适当的方式查询API。

  1. 有没有办法像REST API或
  2. 那样抛出像查询一样的MongoDB
  3. 这是为此目的自定义API的首选方式。
  4. 要说清楚:已经有一个2d索引,并且mongo-cmd的geoWithin queriey工作正常。 它只是关于如何通过REST API进行查询。

2 个答案:

答案 0 :(得分:1)

没有提到,但应该支持它。我没有进入geo的东西,但我只是尝试发出$near查询,并且它返回操作失败,因为我的数据库缺少必要的2dindex。这意味着该命令已正确传递给数据库。

如果您使用像Postman这样的休息客户端,语法应该是这样的(为简单起见,我使用$near):

?where={"loc": {"$near": {"$geometry":{"type": "Point", "coordinates": [13,51]}}, "$maxDistance": 100}}

如果您使用app.get方法,请记住json.loads您的查询。希望这会有所帮助。

答案 1 :(得分:0)

MongoDB中的点可以存储为GeoJSON点对象,

 loc : {
            type: 'Point',
            coordinates: [13.0111, 51.0111]
        };

或传统坐标对。

loc : [13.01111, 51.01111]

集合应该有一个索引(分别是2dsphere或2d)来有效地处理查询。

我很确定EVE有一个内置的geoWithin运算符。它只是无法正常工作,因为您正在查询无效的位置格式。