我不想下载一个区域的整个地图。我只希望在shapefile中的某个区域中存在河流和其他水体,以便可以在QGIS中使用它们。我尝试过geofabrik,但它可以提供整个地图以及整个国家/地区的地图,而我需要一个城市的数据。现在,我正在尝试JOSM。将在工作时更新您的信息。
我不想下载一个区域的整个地图。我只希望在shapefile中的某个区域中存在河流和其他水体,以便可以在QGIS中使用它们。我尝试过geofabrik,但它可以提供整个地图以及整个国家/地区的地图,而我需要一个城市的数据。现在,我正在尝试JOSM。将在工作时更新您的信息。
Answers:
使用天桥Turbo API!
首先,我将转到openstreetmap.org,
你可以
1)搜索您想要的功能。我选择了贯穿丹佛的“南部高原河”。这提供了OSM用来存储数据的字段和标签:
2)确定要使用的功能的标签和值
Map data
或您所用语言的类似内容)然后转到“立交涡轮增压”页面,然后单击向导
使用信息,名称值是South Platte River,水路值是river,因此您可以构建如下查询:
name="South Platte River" and waterway=river
然后点击“构建并运行查询”
查询将运行,结果将显示在地图上:
接下来点击“导出”选项:
我喜欢geoJSON选项
点击“保存”
在QGIS中打开文件,然后走开!
您可以执行“另存为”将其另存为新型矢量层...
在您的情况下,您还可以使用waterway=river
查询来获取您要寻找的区域中的所有河流,并且可以绘制一个手动选择框来缩小地理范围。
@underdark向我展示了这个。
用于QGIS的新QuickOSM插件提供了一个不错的GUI,可以使用Overpass API。您可以指定所需的键/值对,它还提供了按用户友好的方式来按位置进行过滤:边框或什至只为奥地利边界内的要素指定区域名称(如“奥地利”)。
您可以通过边界框和属性使用GDAL过滤OSM数据,并将结果直接保存为GDAL支持的任何矢量格式。安装GDAL 1.10或更高版本,并阅读OSM驱动程序http://www.gdal.org/drv_osm.html和ogr2ogr http://gdal.org/ogr2ogr.html的手册页。可以使用默认设置来完成有关河流和湖泊的任务,但是通常有必要首先编辑osmconf.ini文件。
可以通过OSM数据中的“ waterway = river”标签找到河流,而GDAL将河流保存到“线”层中。您通过“自然=水”找到的湖泊进入“多面体”层。如果要制作shapefile,则必须将河流和湖泊保存到其他文件中,因为线和面不能保存到同一shapefile中。
下面的示例使用来自geofabrik的india-latest.osm.pbf文件。使用的基本命令:
ogr2ogr -f "ESRI Shapefile" -spat 76 22 77 23 -sql "select * from lines where waterway='river'" rivers.shp india-latest.osm.pbf --config ogr_interleaved_reading yes
ogr2ogr -f "ESRI Shapefile" -spat 76 22 77 23 -sql "select * from multipolygons where natural='water'" lakes.shp india-latest.osm.pbf --config ogr_interleaved_reading yes
将您自己的BBOX放入EPSG:4326单位的-spat参数中。
Ogr2ogr非常灵活,并且有很多选择。请仔细阅读手册页。