您请求的节点太多(限制为50000).要么请求更小的区域,要么使用planet.osm



我使用http://www.openstreetmap.org/导出实用程序生成一个区域的。osm (xml地图文件),稍后用它生成一个。map文件

"您请求的节点数过多(限制为50000)。要么请求较小的区域,或使用planet.osm"

如何生成超过50,000个节点的地图?如何使用planet.osm吗?S

如消息所示,如果需要处理大量数据,通常有两种选择:

  1. 生成较小的请求,然后在处理之前合并它们(通常这可能不是理想的方法)。
  2. 下载星球。osm,它是OpenStreetMap 整个的数据库转储,并对其进行处理。由于它是一个巨大的文件(几个GB),处理这个文件的第一步通常是提取你感兴趣的部分,并且已经有预处理的提取可用(例如在Geofabrik上)。

我最喜欢的方法是使用Overpass API。方法如下:

在http://www.overpass-api.de/query_form.html的查询表单中输入类似的内容,将四个边界s、n、w和e更改为所需数据的南、北、西和东边缘。(使用OpenStreetMap导出选项卡拖出矩形并获取边界)

<osm-script timeout="10000" element-limit="1073741824">
  <union into="_">
    <bbox-query into="_" s="52" n="52.4" w="4.8" e="5"/>
    <recurse from="_" into="_" type="up"/>
    <recurse from="_" into="_" type="down"/>
  </union>
  <print from="_" limit="" order="id"/>
</osm-script>

我直接从一个很好的权威那里得到了这个方法:Overpass的开发人员之一。我成功地使用了它。一个附加条件:它递归两次,以获得与矩形重叠的关系的所有成员,然后获得这些方式中的所有点。

脚本将超时设置为10,000秒,并将元素限制设置为适当的大数值。

有几种方法可以从OpenStreetMap下载原始地图数据,从通过API下载小块(你需要更大的区域)到下载整个地球(比你需要的数据更多)。

在中间有下载国家或城市预先准备的文件的选项(这更像)。或者正如graham asher指出的那样,OverpassAPI是一个灵活的API,适用于更大的区域。

我有一个工具"XAPI查询生成器",它可以很容易地找出一个老式的XAPI/OverpassAPI URL(现在有点过时了)或一个Osmosis命令。

一旦您获得了所需的数据区域,如bremen文件。osm…

来自MapsForge文档:

"

使用XML格式写入Bremen的地图文件,并写入/tmp/Bremen文件。map,设置map起始位置为Bremen HBF:

$ bin/osmosis --rx file=../data/bremen.osm --mapfile-writer file=/tmp/bremen.map map-start-position=53.083418,8.81376

"

似乎很清楚,但也许你被卡住了。你安装了osmosis并且用地图编辑器插件安装了吗?

最新更新