python - python中基于geo查询cloudant数据库的建议

标签 python couchdb spatial geo cloudant

Cloudant 地理不一致

我是 IBM Cloudant CouchDB 的新手,希望能够查询我已上传并用 GPS 坐标标记的记录。

我希望能够查询所提供位置 100 公里范围内的所有记录。

cloudant网站信息各地域不一致。

例如

页面仍然显示地理查询处于测试阶段(但支持人员表示不是):tinyurl DOT com SLASH mkcyur2

示例中缺少表(可能是因为我的位置(自动选择)并且我附近没有数据)? tinyurl DOT com SLASH lvxlb4q

API ref 未提及 geo(在 geo 启动之前发布): https://cloudant.com/wp-content/uploads/Cloudant-API-Reference.pdf

地理查询可能只适用于专门的客户? https://cloudant.com/blog/announcing-cloudant-geospatial/#.U6wiqRYRpNN

这就是我使用 python 插入带 GPS 和时间的地理标记记录的方式。

import requests
import json

auth = ('username', 'password')
headers = {'Content-type': 'application/json'}
doc = r.json()
doc['event_title'] = "Blah"
doc['event_datetime_utc_epoch'] = 1403768195000
doc['event_lat'] = -31.089675
doc['event_lon'] = 150.932309
post_url = "https://account.cloudant.com/database".format(auth[0])
r = requests.post( post_url, auth=auth, headers=headers, data=json.dumps(doc) )
print json.dumps(r.json(), indent=1)

这是我在Python中查询10条记录的方法。

import requests
import json
auth = ('username', 'password')
get_url = "https://account.cloudant.com/database/_all_docs?limit=10".format(auth[0])
r = requests.get(get_url, auth=auth)
print json.dumps(r.json(), indent=1)

我希望能够查询我附近(100公里半径)和一定时间后(记录保存日期后30分钟内)的所有记录?

最佳答案

Cloudant 有一个 GIS 查询层 ( Cloudant Geo ),目前仅适用于专用客户。如果您联系支持团队,他们也许可以安排试用期。

Cloudant Search还通过 Lucene 提供一些有限的地理空间查询 - 您可以按到某个点的距离对搜索结果进行排序并执行边界框查询。这听起来是目前最适合您的选项(尽管它不是真正的径向搜索)。

我建议使用类似的搜索功能

function(doc) {
    index('event_lat', doc.event_lat);
    index('event_lon', doc.event_lon);
    index('event_datetime', doc.event_datetime_utc_epoch);     
}

然后是一个查询:

https://account.cloudant.com/database/_design/myddoc/_search/mysearch?q=event_lat:[10 to 30] AND event_lon:[140 TO 160] AND event_datetime:[1403768195000 TO Infinity]&sort="<distance,event_lon,event_lat,15,150,mi>"

关于python - python中基于geo查询cloudant数据库的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432870/

相关文章:

pagination - 在 CouchDB 中创建分页索引?

选择靠在一起的点的算法

python - Django 网站中的 Bokeh 渲染问题

在 OS X 上使用 pypcap 和 dpkt 的 Python 嗅探器

python - 有没有一种 pythonic 方法可以将标量和 0d 数组更改为 1d 数组?

time - CouchDB:通过 CouchApp 中的 http 请求获取服务器时间

mongodb - NoSQL - MongoDB 与 CouchDB

sql - 如何通过 STWithin 对 SQL Server 几何数据进行分组?

python - Geopandas 多边形到线

python - 检测具有轮廓的文本区域后从图像中提取文本