将openstreetmap数据转换为gis和移动地图文件格式。
osm-export-tool的Python项目详细描述
OSM导出工具
This project is under development. For the previous version of the Export Tool, see hotosm/osm-export-tool.
动机
这个程序过滤OpenStreetMap数据并将其转换为专题表格式地理信息系统格式。 过滤器是通过yaml和熟悉的sql语法指定的,例如:
buildings_with_addresses: # creates a thematic layer called "buildings_with_addresses"
types:
- polygons
select:
- building
- height
- addr:housenumber
where:
- building = 'yes' and addr:housenumber IS NOT NULL
这个程序使用pyosmium来读取osm文件,使用gdal/ogr来编写gis格式,因此它应该相当快,并且占用内存较少。还有一个用于GDAL/OGR的OSM驱动程序,但是这个程序旨在允许在转换过程中有更多的灵活性。它还可以创建非表格格式的文件,如Garmin GPS设备或OSMand Android应用程序的文件。
示例用法
osm-export-tool jakarta.osm.pbf jakarta
以下所有标志都是可选的。
- -m,--映射:指定映射yaml。默认为example/defaults.yaml,这是一个非常广泛的osm标记选择。
- -f,--格式:以逗号分隔的格式列表,如gpkg、shp。默认值仅为gpkg。
- --省略osm id:默认情况下,每个层中都包含一个osm_id字段,它是点的节点id,是直线和多边形的路径id(正)或关系id(负)。这将在默认情况下阻止添加此字段,尽管它仍可以在
select
中指定。 - --clip<;file>;:一个.poly或geojson文件。
yaml格式
- SQL语句必须是键与常量的比较,首先是键。
- 有效示例:
- 高度>;20
- 建筑=是
- 无效示例:
- 20<;高度
- 建筑>;高度
- 有效示例:
- 如果省略
types
键,则默认为points
、lines
和polygons
。 - 至少需要一个标记作为
select
键的子项。 - 如果省略
where
键,则默认为任何select
ed键都不为空的条件。 - 如果
where
是一个列表,则它相当于由或连接的每个where
子级。
输入格式:
- OSM PBF
- OSM XML
输出格式:
- OSM PBF
- OSM XML
- 地质包
- 形状文件
- kml
- 奥斯曼
- maps.me
- 加敏
- OGC地质包(.gpkg)
- 这是默认的导出格式,对于现代GIS应用来说是最灵活的。
- 将使用wkbunknown几何类型创建表,该类型允许异构几何类型。
- 形状文件(.shp)
- 每种图层和几何图形类型都是一个单独的.shp文件。这是因为每个.shp文件只支持单个几何图形类型和列架构。
- kml(.kml)
- 每种图层和几何图形类型都是一个单独的.kml文件。这是因为gdal/ogr kml驱动程序不支持对具有不同几何类型的要素进行交叉写入。
maps.me
奥斯曼
加敏