毕业设计进程:导入到Geoserver

昨天晚上想总结一下的,但是太晚了,没网了。

昨天中午打电话问了学长,大致了解了osm2pgsql的用法,之前只是对osm2pgsql 的说明文档进行了查看,下载了适合自己电脑的osm2pgsql Win32版。跟学长确定了只需要解压缩到任意文件夹即可,可是我还是想不明白为什么随意放都跟postgreSQL没有关系了还能向里面导入文件。

我这边osm2pgsql.exe打开之后闪一下就没了,学长说那这样就是需要在命令窗口打开,然后再命令窗口用的。恩就这样挂了电话。

但是我之前给osm2pgsql设置的系统变量路径有问题,后来通过搜索发现可以通过在命令行中输入命令%osm2pgsql%来查看它的路径,这样它会提示说“D:xxxxxx”不是命令也不是批处理什么的,但是这个路径就出来了,发现是Program Files中的空格的问题,导致路径被截断了,于是换了个路径放osm2pgsql,其实也在网上看到说可以通过给带空格的路径加双引号括起来来保证路径不被截断,但是我没继续试了。

路径问题搞定后终于在cmd中输入osm2pgsql有反应了,会显示它的版本号相关的东西,其实添加的环境变量只是保存了这个目录,你输入某个命令的时候它会在所有系统变量路径中查找看有没有这个命令,并不需要输入变量名才行,这是我之前的误解。

跟着教程,安装完osm2pgsql之后并没有首先使用osm2pgsql来将osm文件导入到postgreSQL数据库中,首先是在postgreSQL中创建新的数据库,名字叫osm

但是创建新的数据库却不是osm2pgsql能做的,它只能连接osm文件和postgreSQL数据库,在postgreSQL中创建数据库需要的命令createdb -U postgres  -E UTF8 osm

这个命令需要postgreSQL来完成,这就涉及到怎么开启和在命令行中使用postgreSQL了。这点昨天上午也卡了很久,就是在登陆pgAdminIII的时候说Server Doesn't Listen,因为我不是连接远程的服务器所以出错的可能性本来就不高,而且可以说原因也是很简单的就3种,错误提示里有说。对于我就是没有开启postgreSQL服务,pgAdminIII只是方便PostgreSQL管理postGIS,而不是同时管理SQL和GIS的,登陆它需要SQL服务先开启,而不是SQL通过pgAdmin登陆。

开启postgreSQL系统服务的方法就比较简单了,我的电脑->管理->服务->服务找到postgreSQL即可,可是我每次开机都要自己手动开启,明明设置了自动开启,不知道是不是因为它是网络服务,难道还需要有网才行?可是下面也有网络服务自动开启的呀,又难道开启失败之后的后继操作不一样?

而且如果想直接在命令行输入命令createdb psql 这些命令,最好是把postgreSQL的bin目录写进系统变量路径,不然的话每次打开bin目录在进行操作应该也行。

后面的步骤按照网上的步骤一步步都执行下来了,创数据库,添加psql语言,添加postGIS功能到数据库,添加EPSG900913支持,这个步骤又卡了,我下载的900913.sql文件有问题,明明就只是插入一个表的语句,很少的,后来不知道怎么居然是一个内容蛮多的文件,执行的时候出错,也没说是什么错误类型,昨天就是卡在这里没进度了的,今天又重新下载了900913.sql执行osm2pgsql -U postgres -d osm -f "D:\900913.sql"成功了,返回的是INSERT 0 1

接着添加osm到数据库,osm2pgsql -U postgres -d osm  -s -S ./default.style ./chengdu.osm

这个也出来比较多的错误,我的一开始提示的错误是在文件的D6行哇,说编码不同,我的default.style里面出现了0xa6 0x3c属于BGK汉字编码,在UTF8中没有对应的值,总之是编码问题,就很奇怪,大致看了下这个文件的内容(txt或写字板打开看的)开头是span啥啥啥的,好像是西班牙语的,我想这也不可能是汉字编码呀,后来也重新到别的地方下载了default.style就没有这个问题了,但是会出现另一个问题,文件的多少多少行phstore有问题,就是木有拓展hstore,这个错误是网上的原文里有提示的,要给osm数据库添加一个扩展,原来的拓展里面只有一个psql,现在需要点击pgAdmin上的SQL放大镜,输入create extention hstore;点击上面的小放大镜pg啥的就执行了,提示对的~~但是这个不是随便拓展的,因为本来就有这个拓展项目。完了重启pgAdmin就可以看到了,按照说明,上次木有正确执行的命令里面需要加个-hstore才行,可是这边我又出错了,错误类型居然是无效操作--t,首先我的命令木有输错,其次,我的命令里面木有-t这个东东,后来也整了很久发现是-hstore的问题,这个命令它会把-hs吸收为-h help 然后后面的tore认为操作出错,没有t这个命令,可是这要怎么避免呢,又在网上漫无目的的绕圈圈,搜wiki里的hstore发现-k|--store恍然大悟,去help里看了-k,果然这个命令取代了-store,后续的时候修改命令osm2pgsql -U postgres -d osm -k -s -S ./default.style ./chengdu.osm成功了,但是跟原文的46s相比我只用了7s不知道是不是有什么问题,但是是能看到的,我的chengdu.osm已经导入了。

现在就去Geoserver去创建新的的工作区,然后创建新的数据存储,添加一个PostGIS,里面要注意的是数据库的名字要写上,还有工作区的名字,完了就能看到出现很多图层,初级试操作,只是选择了一个图层然后preview 可以看到图层后面有的,点开就能查看这个图层了 \(^o^)/好开心,坑坑洼洼深一步浅一步总算走过来了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值