Openstreet 矢量数据处理一

1.1 Openstreet Map数据简介

           Openstreet Map是由社会公众力量参与编辑的地理信息数据,它是非盈利性的,用户可以自由的使用 Openstreet Map上的数据。

1.2 Openstreet Map 数据的使用现状

1.2.1 直接使用地图服务

           用户可以直接使用Openstreet Map提供的在线地图服务,将地图嵌入到自己的网页中或者是桌面程序中,来达到使用地图数据的目的。

1.2.2 离线使用Openstreet的瓦片数据

           在电脑不能上网的状况下,可以下载Openstreet Map的瓦片数据,将这些数据储存到本地,可以在桌面程序中直接使用,或者在本地架设GIS服务器,发布GIS服务,供本地使用。

1.2.3 下载矢量数据

           瓦片数据的实质就是图片,图片是无法储存目标对象的属性信息,此时我们就需要用到矢量地理数据。

           目前获取OpenstreetMap的矢量数据有以下三种模式:

           一、 页面导出模式

           在openstreet Map的官网上提供选取矩形范围,导出矩形范围内的矢量数据,一般导出格式为*.osm.

           二、 Overpass API获取模式

           Overpass API可以使用相关接口获取指定范围内的相关数据,并且可以设置相关的属性条件。Overpass API可以导出指定的数据格式,包括*.osm,*.geojson等。

          三、 直接下载模式

          前两种模式获取数据都不能获取太大范围的数据,比如说直接获取一个市的矢量数据。目前大范围的矢量一般是到特定的网站上直接下载。我通常使用的是以下网站:http://download.geofabrik.de/

1.3 Openstreet Map下载数据的处理

1.3.1 为什么要处理

         通过其他各种方式下载的数据,一般而言不是很方便的集成到现有的系统中。因此我们需要将下载的数据处理成常用的地理信息数据格式,方便我们的使用。在本系列文章中,数据最终会被处理成shapefile 格式,这是一种通用地理信息格式,事实上的标准格式。

         或许有细心的读者已经发现在一些下载网站实质上已经提供了shapefile格式的文件下载例如上面我们提到geofabrik网站。那为什么需要我们自己再来处理了?一方面是无法按照我们的要求定制字段;另一方面是针对某些区域没有提供shapefile格式的数据下载服务。

1.3.2 怎么处理

         数据的处理我们分为4个步骤,现在对每一个步骤进行说明:

          解析OSM数据:这是实现数据处理的关键步骤,通过对osm数据的解析,提取我们所需要的信息。

         转换为geojson数据:通过解析osm数据,实际上我们已经得到了相关的点线面以及相关的属性数据。为了方便后续处理,在这一步,我们会将解析到的数据转换为geojson格式。

         转换shp:这一步我们会将geojson数据转换为shp格式,转换的标准参照官方对于要素的分类,分类标准参见:https://wiki.openstreetmap.org/wiki/Map_Features

         再次提取shp:实际上在上一步我们已经获取了shp数据,这一步主要是为了我们的需要,再次对数据进行归类。