您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 求职简历 > 基于开源软件的WebGIS架构设计
基于开源软件的WebGIS架构设计与实现蒋志欣2007-1-29大纲1.开源软件的含义2.WebGIS的含义3.WebGIS架构特征分析4.基于开源GIS软件搭建WebGIS架构5.总结与分析6.实例演示1开源软件的含义开源许可证的共同点1、承认版权;2、发布的义务——将获得的源代码再发布;3、对发布的源代码的要求——须保证源代码的完整和可以被获得;4、允许修改——可以根据获得的源代码产生演绎作品;5、没有担保常用的开源许可证GPL/LGPLBSDMIT1开源软件的含义(二)开源GIS软件1开源软件的含义(三)开源软件遵循的标准OGCOpenGISConsortium•坐标转换规范(OpenGISCoordinateTransformationServicesSpecification)•地理标记语言(OpenGISGeographyMarkupLanguage(GML))•栅格数据规范(OpenGISGridCoveragesSpecification)•简单几何要素规范(OpenGISSimpleFeaturesSpecification):•网络地图服务规范(OpenGISWebMapServerInterface(WMS)Specification•WFSWCSLBS„„此外还有ISOFGDC等标准SVG、KML等规范1开源软件的含义(四)比较商业GIS软件和开源GIS软件的解决方案传统GIS软件分类–桌面GIS软件–服务端GIS软件桌面(商业软件ESRI系列):分析、数据操作(ArcInfo,ArcGrid)制图(ArcView,ArcMap)遥感图像处理(ERDASImagine)服务端(商业软件ESRI系列):空间数据存储(ArcSDE,OracleSpatial)网络地图服务(ArcIMS、ArcWeb、Arcexplorer、ArcGISServer)空间数据处理(ArcInfo,ArcGrid)1开源软件的含义(四)GRASSGIS……GPLLGPLGPLGPLGPL……开源GIS软件桌面环境1开源软件的含义(五)Geoserver、MapguideKa-map、CartoWeb……GPLLGPLGPLMIT-styleLGPL……开源GIS软件服务端环境1开源软件的含义(五)GDAL/OGR(MIT)Proj4(MIT-style)GEOS(LGPL)Mapnik(LGPL)WKB4J(GPL)JTSTopologySuite(LGPL)„„开源GIS软件包2WebGIS的含义(一)广义WebGIS架构•C/S架构的GIS•B/S架构的GIS形式•WebGIS•MobileGIS(PhoneCar)•3DGIS狭义WebGIS•通过网页浏览器访问空间数据,进行空间操作2WebGIS的含义(二)WebGIS特性•数据共享•即时访问•获取容易•服务定制•应用接口功能上WebGIS需要满足•空间数据和属性数据的传输浏览•专业应用•空间分析功能2WebGIS的含义(三)基本的服务有•地图服务、本地搜索扩展服务•公交查询、驾驶导航专业应用1行业宣传应用平台•房地产、旅游景点、企业电子名片、电子票务„„2大众信息交流平台•餐饮生活娱乐卫生购物旅游„„3政府部门电子政务平台•城市地图、城市名片、政务公开、交通部门、土地部门、城市规划、奥运会组委会、突发事件应急„„2WebGIS的含义(四)2WebGIS的含义(五)2WebGIS的含义(六)GIS专业和非GIS专业“从事GIS相关的开发的人并非要求一定是GIS专业的人员,相反,同时拥有结合各种专项技术的人才会是炙手可热。”我们有什么优势?我们可以做什么?2WebGIS的含义(七)动态展示2WebGIS的含义(八)专题地图2WebGIS的含义(九)时空监控3WebGIS架构特征分析(一)常用WebGIS实现方式•CGI•ServerAPI•Plug-ins•ActiveX•JavaApplet3WebGIS架构特征分析(二)GoogleMap特征•空间数据库技术•数据预处理•地图切片技术•JavaScript技术•CSS技术•网页缓存技术•xmlHTTPRequest•GoogleMapAPI3WebGIS架构特征分析(三)传统WebGIS模式的特征•数据量大、传输成图慢•客户端操作性不好•互操作性不够•数据不能共享•空间分析功能差GoogleMap模式的特征•数据传输快,现实迅速•交互性好•互操作•空间分析功能有所加强3WebGIS架构特征分析(四)WebGIS架构主要组成部分•客户端接口•网络服务器•地图服务器•数据应用服务器•数据库服务器3WebGIS架构特征分析(五)C/S和B/S混合模式的WebGIS架构4基于开源GIS软件搭建WebGIS架构(一)换一种思路,从另一个角度看问题选择开源4基于开源GIS软件搭建WebGIS架构(二)平台搭建4基于开源GIS软件搭建WebGIS架构(三)Html+JavaScript+cssPhp+XMLHttpRequestXMLPhp+XMLHttpRequestXMLC+SFS_SQLXMLPhp+SFS_SQLXMLSQLC+SQLXMLC+SFS_SQLphpphp接口设计关键技术•Html+JavaScript+css•xmlHTTPRequest•PostGIS(SFSforSQL)•R空间分析软件包•R-PostgreSQL•R-MapServer4基于开源GIS软件搭建WebGIS架构(四)关键代码//系统配置文件$nju=array('title'='nju','path'='H:\ms4w\apps\ka-map-1.0.b1\htdocs\nju.map','scales'=array(5000,3000,1500),'format'='PNG');$szMap='nju';//地图配置文件nju.mapNAME南京大学校园地图STATUSONSYMBOLSETetc/symbols.sym#Mapimagesize.ChangesizeasdesiredSIZE150150EXTENT118.76732.0519118.7832.0614UNITSddIMAGECOLOR255255255IMAGETYPEpng4基于开源GIS软件搭建WebGIS架构(五)//栅格图层LAYERNAMEpicMETADATADESCRIPTION“NJUENDTYPERASTERSTATUSONDATAnju.jpgEND4基于开源GIS软件搭建WebGIS架构(六)//矢量图层,数据源来自PostgreSQL数据库LAYERNAMEservice_TYPEPOINTSTATUSONCONNECTIONuser=postgrespassword=postgresdbname=postgishost=localhostport=5432“CONNECTIONTYPEpostgisDATAthe_geomfromserviceGROUPService“METADATAqueryabletrueSEARCHFIELDname“fields'name:name,intro:intro„ENDCLASSNAMEServiceCOLOR25500SYMBOL'circle'SIZE9ENDEND//浏览器客户端操作varmyKaMap=myKaNavigator=myKaQuery=myScalebar=null;myKaMap.zoomTo(x,y,3000);myKaMap.zoomIn();myKaMap.createLayers(layer_name);myKaMap.addObjectPix(layer,x,y,obj);//客户端向服务端发送请求,并处理服务端返回的数据varurl=“=”+ip;req=getXMLHTTPRequest();req.open(GET,url,true);vardata=null;req.onreadystatechange=function(){if(req.readyState==4){data=req.responseXML;varml=data.documentElement.getElementsByTagName(coordinate);varx=parseFloat(markers[0].getAttribute(x));vary=parseFloat(markers[0].getAttribute(y));varimg=document.createElement('img');…………myKaMap.addObjectGeo(myNJUCanvas,x,y,img);}else{data=null;}};req.send(null);4基于开源GIS软件搭建WebGIS架构(七)//服务端接受客户端请求,从数据库获取数据返回给客户端$dbconn=pg_connect(host=localhostdbname=postgisuser=postgrespassword=postgres)ordie('Couldnotconnect:'.pg_last_error());//执行SQL查询$query='selectx(centroid(the_geom))asa,y(centroid(the_geom))asbfromconstructionwhereip_txt=\''.$ip.'\'';//echo$query;$result=pg_query($query)ordie('Queryfailed:'.pg_last_error());$line=pg_fetch_array($result,null,PGSQL_ASSOC);echocoordinates\n;if($line!=NULL){echocoordinate;echoz=\0\;echox=\;echo$line['a'];echo\;echoy=\;echo$line['b'];echo\\n;echo/coordinate\n;}echo/coordinates\n;4基于开源GIS软件搭建WebGIS架构(八)5总结与分析基于开源软件设计B/S与C/S混合结构的WebGIS架构,并实现了常州市网络人口地理信息系统原型:•简单便捷的地图浏览查询功能•实现常用的统计分析功能(待完善)•实现空间分析(空间自相关)(尚未完成)后续需做的事情•性能检验,跟ArcIMS进行比较•建立影像数据库•空间分析方法研究6实例演示实例演示谢谢!AnyQuestion?
本文标题:基于开源软件的WebGIS架构设计
链接地址:https://www.777doc.com/doc-6204070 .html