前一阵子搞了下,open Street map的数据,简单总结了下自己处理的一些方法和过程吧。
首先是下载数据,针对Open street map的数据,ArcGIS有一专门的插件,ArcGIS Editor for OpenStreetMap,地址
下载合适的版本进行安装,安装后会在系统工具箱里增加了下图所示的一个工具箱:
工具箱里基本工具如下图所示
接下来进入正题,下载数据,可以双击Download OSM Data工具,此工具会将数据下载到本地的一个filegdb内
基本组成为点线面数据和一个关系的表,点线面数据字段基本一致
有比着还长的,一大串字段,通过字段可以看出,对于点线面所属的类型,是通过字段区分的,但是在点线面的字段里却没有与name相关的字段,这对于我们日常使用就用很大不便,无法进行标注,也无法通过名称进行查询,起初一直觉着这个字段应该存在于relation那张表里,relaition表里osmTags的一个blob字段,后来通过arcpy解析了下里边的内容发现,内部存储的是一个xml,主要是与公交线路相关的数据,所以name这个字段并不是存在relation表里,后来去查ArcGIS editor for openstreet map的文档时候发现了下图这个工具,运行之后可以将中文名,英文名之类的好多字段进行添加并赋值。
这样基本数据就处理完了,后面需要做两个工作,一是将点线面进行分类,二是将分类映射成相对应的中文名,将点线面分类可以利用select工具制作一个gp模型进行筛选,如下图所示(工具挺简单就是比较繁琐,有需要的同学可以留言 我可以把我做好的发给大家哈)
至于进行分类,就用了下python处理了下,用arcpy还是挺 简单的,同样,需要的同学留言,我可以发给大家。简单总结就这些吧,其实这个插件功能还是蛮强大的,从工具命名来看可以创建网络数据集,在osm数据里也有不少相关的公交线路等,有兴趣的童鞋,可以自己下载研究玩玩。