这几个月的工作--被各路GIS折腾
我们项目中很早就用到web和客户端的GIS了,公司虽然不是专业做gis系统的,但是地图是我们整套系统一个很重要的模块。
1、最开始的是某测绘局的com组件上作二次开发。
效果参考如下网站,如果提示acticx,选择允许,这是上海的某官方网站
http://www.fangdi.com.cn/gisnew/gis.asp
因为其性能、健壮性以及用户感受等很多问题,随着系统不断推广,用了几年后把他否掉了。
2、公司内部自行开发了一套基于esri mapobject的框架,用于客户端程序使用。
这个组件大部分gis开发者都很了解,效果略去。在客户端的效果内部基本上是满意的,而且推出去的两套系统也比较成功。只是由于公司gis方面的技术资源比较少,有些方面的效果不是很理想。最后仍然放弃了继续研发,最主要的原因是不能支持webgis应用。
3、开始走技术资源整合的道路,广泛接触其他gis产品。
这中间还有同事发掘了一套开源的webgis。感兴趣的可以上http://mapeasy.sourceforge.net/ 去了解相关资料。这个项目完全是js框架的。使用的是Apache Licence 2.0, 可以作为商业应用。在这套框架基础上,我们自己整合了一些公司内部资源对某大型门户网站的一个项目作了技术支持。
4、和google在中国的供应商mapabc也就是高德频繁接触。他们的webgis很玄,而且地图资源很丰富。
这个产品的效果可以参考http://www.mapabc.com/ 。其中还包括了city8的街景功能,以前我写的ajax跨域转发的笔记就是应为这个项目。
合作方式为对方提供api,我们购买授权。api都是用js的形式发布。我们只管调用,总的来说还是比较方便的。而且可以满足大部分的web应用,包括对空间搜索有很好的支持。作为一般公司的解决方案,选择他们的东西还是不错的。现在公司也有部分项目在合作研发当中。
5、三维gis产品skyline。
效果参考http://www.skylineglobe.com//SkylineGlobe/WebClient/PresentationLayer/webclient/3dwebclient.aspx
这里也不提和他和其他产品的对比了,网上有很多,尤其是和google earth的对比。
基于这项技术的项目研发正在进行中,计划到春节后完工。
6、中间还涉及到很多其他方面的技术细节,也是最折腾人的。
很多细枝末节就略过了。说说最近的事情,现在需要在服务器上作资源发布,基本上都需要自己来做。中间有很大一段弯路,一直到现在还没有走完。
客户端需要流模式读取服务器矢量数据,我们现在的矢量资源基本上都是esri shp格式的。
由于使用产品限制,流模式支持4种格式:直接读取shp,读取arcsde,读取oracle spatial,读取wfs。
开始代理商给的技术方案时直接读shp,后来发现这个无法支持web发布,于是用了arcsde。
以前没有接触过arcsde,于是开始恶补。几天时间学会了arcsde,arc desktop等一系列东西,开发也顺利进行,结果发现sde无法支持大量并发,虽然配置可以修改到很大,但是服务器负担不起。其实sde也没有这么差,只是客户端的流模式下不允许断开连接,导致服务器负载过大。直到现在,代理商也没有提供实质性的解决办法。
求人不如求己,自己研究它的另外两种模式oracle spatial和wfs。由于资源需要部署到远程服务器,直接连oracle spatial对我们的意义不大,否掉了。wfs,这玩意没有接触过。通过万能的google,找到了些眉目。安装了java下的geoserver,这个时候也不用理会什么.net还是java了。顺利的在geoserver下倒入了测试数据并测试成功,结果发现号称支持wfs的这个客户端居然不支持geoserver发布的数据....
第一次求己失败,于是开始研究skyline官方网站的解决方案。他们web写的那个叫复杂...好歹祭出httpwacth,靠着警觉、敏感、经验等经过整个通宵的努力,把这个web的架构翻了一个底朝天。发现他们居然是用.net webservice来发布数据的,于是一切有回到.net中。
现在正在按照他们的格式构建websercie,除了写程序还需要自己规划空间数据存储结构,构建数据分层方式,还需要把大量的shp导入到oracle spatial中..好在有免费而且容易上手的工具可以使用,包括shp2sdo等。还要自己写oracle空间搜索的脚本...一切仿佛回到了开始。
或许是我少见多怪,和更好的方案已经擦肩而过,但是这段时间能走到现在的程度确实也很艰难,而且有用的没用的东西都学到很多..接下来的事情确实很多,不知道还要有多少个通宵在前面等着...