终于,重要的,关键的时刻到来了!
关于osm的数据格式:
从网站上下载下的xml格式文件,通过对数据的解析,获得矢量数据,并且保存成shp!
OpenStreetMap的元素(数据基元)主要包括三种:点(Nodes)、路(Ways)和关系(Relations),这三种原始构成了整个地图画面。其中,Nodes定义了空间中点的位置;Ways定义了线或区域;Relations(可选的)定义了元素间的关系。
以上是http://blog.csdn.net/scy411082514/article/details/7484497博客中看到的。
不过在我的分析看来,用最简单的说法,就是点、线、面,还有一个“tag”,定义空间数据的属性信息,这种解释有可能并不能完全说明其结构,但是比较简单容易理解,下面看看简单的示例:
Node
<node id="1605322444" visible="true" version="3" changeset="18653629" timestamp="2013-11-01T15:46:40Z" user="Vulcanodong" uid="720609" lat="35.0254172" lon="118.3184850">
<tag k="railway" v="buffer_stop"/>
定义了点的唯一id,其他属性信息和最关键的经纬度信息,tag中k关键字(key),v是值(value),可以定义多个tag,具体的key表示对数据元素的不同描述。
Way
<way id="32836214" visible="true" version="12" changeset="18748423" timestamp="2013-11-06T15:43:14Z" user="Vulcanodong" uid="720609">
<nd ref="767321101"/>
<nd ref="369645548"/>
<nd ref="369645549"/>
<nd ref="2438921856"/>
<tag k="highway" v="primary"/>
<tag k="lanes" v="3"/>
<tag k="name" v="沂河东路"/>
<tag k="oneway" v="yes"/>
<tag k="ref" v="G327"/>
</way>
Way节点表示线元素的唯一id,nd节点代表组成该线要素的点,ref表示点的id,tag是属性信息,highway=primary表示道路类型,name=沂河东路 表示道路名称。
Relation
<relation id="3102351" visible="true" version="3" changeset="20006725" timestamp="2014-01-15T04:33:10Z" user="Vulcanodong" uid="720609">
<member type="way" ref="231201759" role="outer"/>
<member type="way" ref="231201779" role="inner"/>
<member type="way" ref="231201795" role="inner"/>
<member type="way" ref="231201801" role="inner"/>
<member type="way" ref="231201782" role="inner"/>
<member type="way" ref="231201803" role="inner"/>
<member type="way" ref="231201770" role="inner"/>
<member type="way" ref="231201787" role="inner"/>
<member type="way" ref="231201777" role="inner"/>
<member type="way" ref="231201788" role="inner"/>
<member type="way" ref="231201798" role="inner"/>
<member type="way" ref="231201805" role="inner"/>
<member type="way" ref="231201774" role="inner"/>
<member type="way" ref="231201811" role="inner"/>
<member type="way" ref="231201792" role="inner"/>
<tag k="name" v="双月湖"/>
<tag k="type" v="multipolygon"/>
<tag k="waterway" v="riverbank"/>
</relation>
面要素信息,通过way的id找到组成面的线要素,并确定外环还是内环,同样tag中有名称属性和其他描述信息。
现在我只是将某一区域的道路数据提取成shp,关于osm也只是一知半解,让各位见笑了!现在贴出成果,有图有真相,希望有好的建议大家告诉我!