我试图在一个地区寻找燃料(Tankstelle)的例子。
这是一个50公里的边界框,它只能得到很少的结果:
http://nominatim.openstreetmap.org/search?q=Tankstelle&format=xml&limit=50&viewbox=7.98435,49.40889,8.95440,48.77371&bounded=1
它包含" more_url"链接以获取更多数据。虽然我使用极限参数但我得到的结果却很少。是否有可能至少获得与limit指定的结果相同而不是more_url?
汤姆
答案 0 :(得分:2)
编辑(试图更明确)
如果您想搜索OSM"功能"与Nominatim,你应该使用专用 - 即使没有记录! - Nominatim语法,在括号内使用Special Phrases:
http://nominatim.openstreetmap.org/search?q=[Tankstelle]&format=xml&limit=50&viewbox=7.98435,49.40889,8.95440,48.77371&bounded=1
使用此语法的限制:
当我的查询检索到最大值= 50(50个加油站,即使没有#34; Tankstelle")时,您可以看到您的查询检索到4个结果(地址为" Tankstelle")在地址中)。
我不知道为什么Nominatim会为你的搜索示例提出more_url。
现在,如果您搜索常规地址(" q = 50 Mozart street,Denver"),那么Nominatim通常会达到您设定的限制(50)。如果Nominatim找到超过50个答案,那么more_url允许获得下一个"页面" 50个结果(等等)。
答案 1 :(得分:0)
要检索给定区域内的所有加油站,最好使用不同的API,例如Overpass API。 Nominatim主要是一个(反向)地理编码器,并不是为此类查询而设计的。
参见this example query显示边界框中的所有加油站,使用overpass turbo显示:
<osm-script output="json" timeout="25">
<union>
<query type="node">
<has-kv k="amenity" v="fuel"/>
<bbox-query e="8.95440" n="49.40889" s="48.77371" w="7.98435"/>
</query>
<query type="way">
<has-kv k="amenity" v="fuel"/>
<bbox-query e="8.95440" n="49.40889" s="48.77371" w="7.98435"/>
</query>
<query type="relation">
<has-kv k="amenity" v="fuel"/>
<bbox-query e="8.95440" n="49.40889" s="48.77371" w="7.98435"/>
</query>
</union>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton" order="quadtile"/>
</osm-script>