我需要让所有具有“教堂”功能的建筑物远离指定点(lat,lng)100公里。我这样做了:
[{
"id": null,
"name": null,
"type": "/architecture/building",
"building_function" : [{"name" : 'church'}],
"/location/location/geolocation" : {"latitude" : 45.1603653, "longitude" : 10.7976976}
"/location/location/area" : 100
}]
但我总是得到一个空洞的回应
code: "/api/status/ok"
result: []
status: "200 OK"
transaction_id: "cache;cache03.p01.sjc1:8101;2011-04-16T12:32:45Z;0035"
我错过了什么? 感谢
答案 0 :(得分:0)
/ location / location / area 属性用于查询覆盖特定区域的位置。因此,您的查询将查找以(45.1603653,10.7976976)为中心的建筑物,其面积为100公里。当然没有匹配的结果。
在这些坐标的100公里范围内搜索主题需要更多的工作。您需要使用仍处于alpha状态的Geosearch service。以下查询应该为您提供所需的结果:
http://www.freebase.com/api/service/geosearch?location={%22type%22:%22Point%22,%22coordinates%22:[10.7976976,45.1603653]}&type=/architecture/building&within=100&indent=1
获得建筑物列表后,您可以查询MQL Read API以找出这样的教堂:
[{
"id": null,
"name": null,
"type": "/architecture/building",
"building_function" : [{"name" : 'church'}],
"filter:id|=":[
"/en/verona_arena",
"/en/basilica_palladiana",
"/en/teatro_olimpico",
"/en/palazzo_del_te",
"/en/villa_capra_la_rotonda",
"/en/villa_badoer",
"/en/san_petronio_basilica",
"/en/palazzo_schifanoia",
"/en/palazzo_chiericati",
"/en/basilica_di_santandrea_di_mantova",
"/en/basilica_of_san_domenico",
"/en/castello_estense",
"/en/palazzo_dei_diamanti",
"/en/villa_verdi",
"/en/cathedral_of_cremona",
"/en/monte_berico",
"/en/villa_pojana",
"/en/san_sebastiano",
"/en/cremona_baptistery",
"/en/palazzo_della_pilotta"
]
}]
现在它只匹配2个结果,因此您可能需要编辑其中一些主题以将其标记为教堂。
答案 1 :(得分:0)
区域不是距离,您可能不希望与值“100”完全匹配。你已经要求那些正好在那个长/纬度的东西,并且确切地说就是那个区域。
您是否正在寻找距离小于一定距离或超过一定距离的教堂?您可能希望查看Geosearch API http://api.freebase.com/api/service/geosearch?help(虽然它不是长期解决方案,因为它已被弃用)