OSM在ArcGIS产品线中的使用小结
说到免费开放的数据,自然会想到 Open Street Map,这里分享下在 ArcGIS 产品线中osm数据的使用实践。
环境:ArcGIS Desktop 10.6, Esri CityEngine 2017.1
在ArcMap中使用osm数据
一般情况下,我们可以在 Open Street Map 官网可以通过指定范围直接下载osm格式数据,然后在 ArcMap中直接读取。如下,以Esri中国所在的金泰大厦为中心的数据:
osm数据是基于xml的数据格式,ArcMap不能直接编辑。如果希望导入地理数据库中编辑,可以利用插件,这是Esri额外提供的一个桌面端的免费开源的osm插件,ArcGIS Editor for OSM 10.6.x Desktop。 通过这个插件可以下载、更新OSM数据有关这个插件的源码、文档,可以在Github上获得。
OSM is an XML-based format used to describe vector data in a map. It defines three basic data types—nodes, ways, and closed ways—which are used to describe all the other elements:
- Nodes—Points between which segments are drawn.
- Ways—Ordered list of nodes, displayed as connected by line segments in the editor.
- Closed Ways—Ways that go in a complete loop. They are used to describe areas such as parks, lakes, or islands.
以前10.3年代的时候,整理过一次简单的说明,点这里直达。通过测试,相同的网络环境下,官网下载osm数据,之后再使用 Load OSM File 导入GDB,效率明显优于直接使用 Download OSM Data导入GDB。
在CityEngine中使用osm数据
如果osm数据用于CityEngine,那么无需事先导入GDB,CityEngine可以直接解析osm并可分类导入数据,例如下图中导入highway,Building类:
在CityEngine中导入osm时,可以勾选“Map OSM tags”,从而CityEngine会通过OSM street type来定义道路的宽度,并给与不同道路组成部分不同的起始规则,方便后续利用规则批量建模。如下,以金泰大厦以南的东直门大枢纽为例,复杂的交通仍然保持错落有致:
选中Jintai_Streets
这个图层,可以在Inspect窗口中看到图层的属性,其中即为默认情况下osm数据在CityEngine中的映射规则,可以根据需要修改:
1 | //------------------------- |
默认情况下,进入cityEngine中的道路数据,会使用Esri.lib库中的规则Street_Modern_Standard.cga,当然也可以自己来编写。