首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nominatim边界框限制?

Nominatim边界框限制?
EN

Stack Overflow用户
提问于 2014-09-03 17:03:02
回答 2查看 2.9K关注 0票数 2

例如,我正在尝试搜索某个区域中的燃料(Tankstelle)。

这是一个50公里的边界框,它只给出了很少的结果:

代码语言:javascript
复制
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-参数,但我只得到了很少的结果。有没有可能至少用limit而不是这个more_url得到指定的结果?

汤姆

EN

回答 2

Stack Overflow用户

发布于 2014-09-04 19:40:15

编辑(尝试更明确)

如果你想用Nominatim搜索OSM“特性”,你应该使用专用的-即使没有文档记录!- Nominatim语法,在括号中使用Special Phrases

代码语言:javascript
复制
http://nominatim.openstreetmap.org/search?q=[Tankstelle]&format=xml&limit=50&viewbox=7.98435,49.40889,8.95440,48.77371&bounded=1

使用此语法的限制:

  • 您必须设置viewbox和bounded=1。
  • 限制的最大值为50。

您可以看到,当我的查询检索max = 50 (50个加油站,即使地址中没有"Tankstelle“)时,您的查询检索了4个结果(地址中有"Tankstelle”)。

我不知道为什么Nominatim会在你的搜索示例中使用more_url。

现在,如果您搜索常规地址("q=50 Mozart street,Denver"),那么Nominatim通常会坚持您设置的限制(50)。如果Nominatim找到了超过50个答案,那么more_url允许获取下一个包含50个结果的“页面”(依此类推)。

票数 2
EN

Stack Overflow用户

发布于 2014-09-03 17:24:47

为了检索给定区域中的所有加油站,最好使用不同的API,例如Overpass API。Nominatim主要是一个(反向)地理编码器,并不是为此类查询而设计的。

查看使用overpass turbo可视化的在边界框中显示所有加油站的this example query

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25640313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档