Windows 7下安装Osmosis以及简单的使用例子
最近在研究地图匹配算法需要用到道路层信息,悲剧的是老板不肯买数据~~~还好前段时间发现了居然有开源数据openstreetmap这种好东西,虽然国内数据比较少,连大城市很多都是空白一片,不过也好过没有数据呀。之后就一直在看openstreetmap的相关资料,了解了openstreetmap的数据结构,如何获取数据,后面就到了非常关键但是相当苦逼的数据处理。因为openstreetmap在国内用的还是很少,所以中文资料非常有限,就要自己去看那个非常令人头疼的鸡肠文,中间又有很多乱七八糟的事,今天终于有所突破了,泪奔呀~~~
openstreetmap数据用的是xml结构的osm文件,Osmosis是专门用来处理osm格式地图数据的一种用Java写的命令行工具,适合于各种平台。关于osmosis的相关介绍,可以到http://wiki.openstreetmap.org/wiki/Zh-hans:Osmosis#Windows_.E6.B3.A8.E6.84.8F.E4.BA.8B.E9.A1.B9去看一下,里面详细介绍了osmosis的功能、各种平台下的安装方法、以及使用例子,也可以下载《OpenStreetMap》这本书,看看第十章的相关介绍,下载地址为http://download.csdn.net/detail/scy411082514/4251597。不过这些资料多是英文,看起来比较辛苦,这里写一下我再win7下安装及使用osmosis的一些心得吧。(第一次写文,略略有点啰嗦~~~)
1、安装
首先要确认你的系统已经装好了Java环境,而且需要是1.6版本以上,不清楚的可以cmd一下,输入java -version看一下。具有java环境之后,就开始正式安装了,安装包可以到http://dev.openstreetmap.org/~bretth/osmosis-build/osmosis-latest.zip去下载。安装其实就是解压就可以了,我就是解压到D:\Program
Files\Osmosis里面,之后双击bin文件夹里面的osmosis.bat文件,这时候可能会有一闪而过的效果,之后cmd一下,跳转到D:\Program Files\Osmosis\bin,文件夹,输入osmosis命令,会有如下效果:
这样子就说明osmosis已经装好了。
2、使用
这里就不介绍osmosis的具体指令了,上面提到的网站都有很详细的介绍,而且也很容易看明白。我做道路匹配,需要用到的是道路层的信息,所以用到的是标签过滤功能,例子如下:
osmosis --read-xml map.osm --tf accept-ways highway=* --used-node --write-xml highways.osm
一开始我直接就输入这句命令,结果出现了unable to find xml file map.osm的错误,原因很明显就是找不到文件呗。后来尝试把map.osm文件放到D:\Program
Files\Osmosis及其子文件夹里面去试过了,都不行,郁闷。。。再后来才发现原来需要指定需要读取的文件的存储路径的,比如我的map.osm文件是放在E:\OpenStreetMap\data里面,就应该输入以下命令:
osmosis --read-xml file=E:\OpenStreetMap\data\map.osm --tf accept-ways highway=* --used-node --write-xml highways.osm
这样就没有问题了,不过这时候过滤得到的highways.osm文件没有指定保存路径,那它就默认保存在D:\Program
Files\Osmosis\bin文件夹里,当然我们也可以指定它的保存路径,如:
osmosis --read-xml file=E:\OpenStreetMap\data\map.osm --tf accept-ways highway=* --used-node --write-xml file=E:\OpenStreetMap\data\highways.osm
这样生成的highways.osm就保存在你指定的位置了。
今天的收获就这些了,后面还要验证一下导出来的道路信息是不是正确的,还有就是将道路信息导入到PostGreSQL数据库,明天继续努力吧~~~
PS:本人能力有限,而且刚接触openstreetmap,难免有出错的地方,欢迎批评指正以及各种交流!!
转载自:https://blog.csdn.net/bobantangzlt/article/details/16992585