
欢迎来到 盹猫(>^ω^<)的博客 本篇文章主要介绍了 [OSM文件相关工具] ❤博主广交技术好友,喜欢文章的可以关注一下❤
OpenStreetMap (OSM) 文件包含了全球地图数据,这些数据由全球志愿者社区维护和更新。OSM 文件的内容和结构旨在描述地理信息,例如道路、建筑物、水体、绿地等。
OSM 文件主要有两种格式:
.osm,使用 XML 语法描述地理数据。.osm.pbf,是一种二进制格式,具有更高的压缩效率和读取速度。<node id="123" lat="52.51631" lon="13.37777">
<tag k="amenity" v="restaurant"/>
<tag k="name" v="Example Restaurant"/>
</node>描述地图上的一个点。
每个节点包含一个唯一的 ID 和经纬度坐标(纬度和经度)。
节点还可以有一些标签(key-value 键值对),用于描述该点的属性(例如,名称、高度、类型等)。
<way id="456"> <nd ref="123"/>
<nd ref="124"/>
<nd ref="125"/>
<tag k="highway" v="residential"/>
<tag k="name" v="Example Street"/>
</way>由一系列节点组成的有序列表,表示线条(如道路、河流)或多边形(如建筑物、湖泊)。
路径也有一个唯一的 ID,并可以有标签来描述其属性。
用于描述复杂的地理结构,如多边形关系(例如,多边形的内外环)、路线、边界等。
关系包含其他节点、路径或其他关系的引用,并定义它们在关系中的角色(如外环、内环)。
<relation id="789">
<member type="way" ref="456" role="outer"/>
<member type="way" ref="457" role="inner"/>
<tag k="type" v="multipolygon"/>
<tag k="landuse" v="forest"/>
</relation>标签是 OSM 文件的核心部分,用于描述地理对象的属性。每个标签由一个键(key)和值(value)组成,例如:
amenity=restaurant:表示一个餐馆。highway=residential:表示一条住宅道路。name=Example Street:表示对象的名称。osmium osmium是一个命令行工具,用于检查osm文件的完整性。
可以适用以下命令进行安装:
# Ubuntu/Debian
sudo apt-get install osmium-tool
# macOS
brew install osmium-tool使用以下命令进行检查:
osmium check-refs input.osmGDAL (Geospatial Data Abstraction Library) 工具集的一部分,主要用于在不同的地理数据格式之间进行转换。
安装命令:
# Ubuntu/Debian
sudo apt-get install gdal-bin
# macOS
brew install gdal基本用法命令如下:
ogr2ogr -f "OutputFormat" outputfile inputfileOutputFormat:输出文件格式
outputfile:输出文件路径(转换后的文件存储路径)
inputfile:输入文件路径(要转换的文件路径)
例:将osm文件转换为kml格式需运行
ogr2ogr -f "KML" output.kml input.osm若要单独提取points(点)或lines(线)或multipolygons(面)元素,可使用以下命令:
ogr2ogr -f "KML" output_nodes.kml input.osm pointsogr2ogr -f "KML" output_lines.kml input.osm linesogr2ogr -f "KML" output_polygons.kml input.osm multipolygons