gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:09:40 27 4
gpt4 key购买 nike

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com