这几天一直在做Foxtalble+WebGIS协同开发的工作,近期告一段落,在开发过程中,得到很多人的帮助,特别是蓝版,为表感谢,所以把Foxtable在这方面的应用思路分享出来,供大家参考。
这里只谈一些实现的思路,具体如何制图、如何搭建GIS服务器,如何试用API搭建WebGIS系统网上有太多的教程,大家可以自己搜索。
既然是WebGIS,其实GIS的功能都是通过WEB端来完成,Foxtable在整个系统中只有两个功能:一是通过Webbrowser打开web地图,二是通过文件管理上传地图文件(如果地图需要加密的话,如果不需要加密,这个功能可以忽略)
WebGIS的搭建,建议采用Eris公司的ArcGIS系统,需要用到的包括Desktop(制图)、Server(数据服务器)、Javascript API(WebGIS),其中前两个是商业软件,如需使用,需要购买商业授权,学习研究可以到官方网站申请60天的试用。
另外,也有一些开元的GIS系统,是免费的,入门可能更难一点,如OpenLayer。
Esri官方网站:http://www.esri.com/,除Javacript API是纯英文之外,Desktop,Server均有官方的汉化包。
Esri中国官方网站:http://www.esrichina.com.cn 上面有各个软件的介绍。,
ArcGIS API for Javascript 是开源的,可以使用官方的API,也可以本地部署,帮助文件:https://developers.arcgis.com/javascript/ 最新是4系列的,支持三维数据显示,不过我喜欢用3系列的,最新版本是3.18,代码看起来比较简单,这个系列的版本也比较经典。注册账号候可以下载API本地部署包。
3系列的帮助:https://developers.arcgis.com/javascript/3/
以下是一些比较常用的源码例子,WEBGIS做图的时候可能会用到:
搭建一个简单的地图:https://developers.arcgis.com/javascript/3/jssamples/map_simple.html
动态图:https://developers.arcgis.com/javascript/3/jssamples/map_dynamic.html
底图切换:https://developers.arcgis.com/javascript/3/jssamples/widget_basemap.html
元素搜索:https://developers.arcgis.com/javascript/3/jssamples/search_multiplesources.html
关于GIS入门
可以观看Esri王志强的教学视频,跟着视频做,没有问题
http://i.youku.com/i/UMjkzNDI2ODY4OA==?spm=a2h0j.8191423.subscription_wrap.DD~A
关于Webbrowser打开gis地图的错误处理
由于Webbrowser的IE内核版本比较低,因此在打开gis地图的时候经常报错,之前也和蓝版有很多交流如何处理,详见:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=92859&replyID=&skin=1
可以使用WebKit.Net内核,可以解决IE内核版本低的问题,方法见:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=84533
但是Webkit.Net内核的不足之处是无法继承IE的代理设置,如果你的网络有代理,而你又想访问外网的数据的话,无法打开。
现在找到一个最简单的办法,就是在网页中强制使用最新的内核渲染,避免报错不显示地图
在html头 加标签 强制使用最新的ie渲染 <meta http-equiv="X-UA-Compatible" c>
强制使用最新的ie8渲染<meta http-equiv="X-UA-Compatible" c/>
详见:http://www.cnblogs.com/sung/p/3391264.html
关于地图加密的处理:
由于web文件一般放在网上,要避免别人看到,又能在foxtable开发的系统中正常打开,可以采用foxtable文件管理来实现。在窗口打开的时候,将html文件上传到要访问的服务器,关闭窗口的时候删除文件。
由于Arcgis server自带Token加密技术,因此在本地电脑上的html文件中要配置好Token信息,这样,及时别人在本地打开这个html文件,也无法查看加密的地图。
Arcgis Server Token加密设置参考: http://blog.csdn.net/esrichinacd/article/details/7972903
---------------------------------
2017-2-21 更新
虽然JAVAScript的GIS地图是通过网页浏览的,也可以把网页的源码写到狐表的数据表的“备注”格式的列中,当客户端需要请求地图时,再根据表中储存的地图源码临时生成网页html文件,然后上传到服务器上读取数据,这样避免了本地储存HTML文件,也提高了GIS模块和狐表管理的集成度,也方便客户端地图源码的统一管理。
[此贴子已经被作者于2017/2/21 15:01:27编辑过]