【SQL开源代码栏目提醒】:以下是网学会员为您推荐的SQL开源代码-sql server 2008中空间数据的应用 - 互联网,希望本篇文章对您学习有所帮助。
sql server 2008中空间数据的应用
sql server 2008中空间数据的应用 2011年07月23日 原创作品允许转载转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。
否则将追究法律责任。
http://boyi55.blog.51cto.com/4345/621115 知道这个东西也不是一天两天了一直没用是因为搞不清楚这个到底要怎么用话说用dundas map哥也从来没做成功过一张地图报表。
上面这是前提哥最近心血来潮想做几张地图的报表玩玩别人能做出来为什么哥不能呢然后就开始了下面痛苦的旅程。
1.先得有地图文件吧reporting services支持shp和直接从数据库中读空间数据哥只用过这两种方式那么先去网上找shp的地图文件吧网上查了一下几乎所有的都是从中国国家地理信息系统出来的那就去下吧。
能下到的有用文件有两个一个是省级区划一个是县级区划。
好吧我们现在已经有地图文件了。
2.空间数据导入到数据库中有了shp文件那么我们如何才能导入到数据库里这真是一件让人头痛的事。
那为什么不直接用shp文件呢a:可能会出现乱码如果你系统和数据库不是全中文环境那么100会有这个问题.b:管理不便多一个文件放在一边出错的机率会大很多大家可以尝试一下就明白。
c:不便于修改如果地图文件本身有错的话我们只能借助外部gis软件来修改这样也会出理管理上的混乱.d.大家自己想吧。
那么现在我们最先考虑到的应该是网上有没有软件可以直接完成这件事呢如果有直接用不就可以了。
google下来还真给我找到了是一mvp写的名字就叫shape2
sql。
激动啊设置好点了upload to database看着数据一行一行的写入到数据库中好开心啊可当查看表的时候就傻了中文全是乱码。
nnd接着google找到什么好的办法突然想到这个软件发在codeplex那么应该会源友公开的我修改源码应该可以吧。
然后我看到很让人发狂的说明本软件不提供源码不提供支持。
我昏特了那么好吧再找找有没有其它办法。
最后找到了一个python修改shp文件的库事已至此那也只能自己动手了。
哥编程很菜一边看文档一边写终于在凌晨三点的时候顺利的把数据拼成insert语句那个激动啊按下F5有一条记录出错说是不闭合。
先不理了select一把切换到地图结果集哥鸡冻了。
虽然上面有一个省木有数据但搞了一晚上还是把这个东西搞出来了。
然后再看这条数据发现我程序取出的点和shape2
sql取出的点不一样只是这个省的数据并且很明显我的是错的。
那么即然有一个是对的并且还是在数据库里那么我只是update就可以了这是最快也最简单的方式。
最后看着两张地图显示在reporting services里那个开心哦虽然此时已经天亮了哥为了搞这个破东西一整完都没睡哥容易吗 3.地级市地图融合及区划早上七点睡下八点起来上班。
估计白天要挂了路上买了包烟到公司接了杯浓咖啡希望可以顶一顶。
不过有时候你在努力的想事情反倒是没有睡觉的欲望了还好当天不是很忙哥就接着研究起来地级市的数据。
网上找是肯定找不到的网上卖的也差不多都是骗子。
那么哥还是只能自己动手了思路是先找个gis软件根据区划做一下融合这样可以得到地级市的数据了。
有时候往往想法很简单可实现起来却要人命所以当你想不通的时候就安慰下自己这是在中国。
gis软件搞了一堆出来从几百K的绿色版到几个G的XX哥全搞了一遍最后选中了一个
开源软件qgis文件100M左右主要是可以完成我的工作。
安装完成哥就把shp导入到软件中按区划开始融合5分钟后将生成的文件导入到数据库中哥又傻了这是他妈的什么地图啊哥都看不出来上海和河南的区别好吧哥找原因去过会再感谢国家从shp文件数据库gis软件查了半天终于问题锁定在区划
代码上。
网上找最新的区划下载下来导入到数据库中更新原来的表。
按区划select出来的地图看上去好像可以了那么去软件里再融合下好了。
可现在的问题是如何把数据库中的数据导入到gis软件中.哥已经凌乱了这个时候哥已经不想再去写一个写shp文件的小程序了只能寄希望于这个qgis软件了。
把菜单从头看到尾从数据库中导成图层的有但是没有
sql server的数据源先odbc的有但是
sql server不支持google吧终于给我找到了网上唯一的一篇写如何从
sql server中将数据导入到qgis的文章可恨的是公司的网络全都有打不开快照也不行。
在找了一个多小时后终于我看到了那段
代码。
修改下链接输入进去错误再改还是错误。
无语了快疯了。
最后终于知道他妈的原因了哥把两条命令当一条命令运行了无知害死人啊。
再次融合后导入数据库这时已经好太多了上海是上海河南是河南。
4.纯手工修改看到上图我真的鸡冻了多少天的梦想终于在这一刻实现了细看有发现有几个地方是错的查了下表有30行数据区划更新老的区划现在不存在也就算了名字也变掉了本来的县现在合成的区几个县又合成了市我唻个去。
改的我头晕眼花天昏地暗。
总算是可以保证正确在95以上了。
5.后续上面已经完成了大部分的数据准备工作另外一些数据上的错误有空再修改一下名称显示直辖市显示。
下一步准备天始做报表然后在sharepoint 2010中用pps做成dashboard发布出来后续有空了慢慢更新吧上面这些差不多用了我一周时间。
PS顺便问下这个数据我有打算拿出来卖掉想来需要这个地级市数据的人不在少数我这边基本上区划省市县的数据都好了做中国的报表问题已经不大了。
有人要买的话就留言或者站内m我吧或者google找我的联系方式谢谢 本文出自“老侯的菜园子” 博客请务必保留此出处http://boyi55.blog.51cto.com/4345/621115