我发现使用插件下载OSM数据并进行导入和导出动作非常繁琐。这就是为什么我写了一个不同的解决方案的原因:http : //anitagraser.com/2014/05/31/a-guide-to-googlemaps-like-maps-with-osm-in-qgis/
摘要:
原始OSM文件可能非常庞大。因此,绝对推荐下载压缩的二进制.pbf格式而不是XML .osm格式。作为下载源,我建议使用Geofabrik。
对于第一个预处理步骤:提取感兴趣的区域,我们可以使用Osmosis:
C:\Users\anita_000\Geodata\OSM_Noirmoutier>..\bin\osmosis.bat --read-pbf pays-de-la-loire-latest.osm.pbf --bounding-box left=-2.59 bottom=46.58 right=-1.44 top=47.07 --write-xml noirmoutier.osm
虽然QGIS也可以加载.osm文件,但我发现,如果将.osm文件转换为spacespaceite,性能和对属性的访问将大大提高。
C:\Users\anita_000\Geodata\OSM_Noirmoutier>ogr2ogr -f "SQLite" -dsco SPATIALITE=YES noirmoutier.db noirmoutier.osm
在QGIS中,我们可以使用“添加SpatiaLite图层”来加载点,线和多边形。加载spacespaceite表时,存在一些问题:
- 没有陆地多边形。而是有“海岸线”线要素。
- 大多数河流多边形都丢失了。而是有“ riverbank”线路功能。
创建丢失的河流多边形并不重要:
- 选择waterway = riverbank的所有线。
- 使用处理工具箱中的“多边形”工具可根据所选河岸线所包围的区域自动创建多边形。(请注意,默认情况下,“处理”仅对所选功能起作用,但是可以在“处理”设置中更改此设置。)
创建陆地多边形(或由于某些原因而更喜欢海多边形)的过程要复杂一些,因为大多数情况下海岸线不会关闭,原因很简单,我们经常在主要大陆上砍一块土地。因此,在使用多边形工具之前,我们必须关闭该区域。为此,我建议您首先使用“ other_tags”(例如“%” natural” =>“ coastline”%')选择海岸线,然后从该选择中创建一个新图层(将选择另存为…)并进行编辑(不要忘记)以启用捕捉!)以添加线条以关闭该区域。然后多边形化。