Openlayer---第一课:概述
OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择。除此之外,OpenLayers实现访问地理空间数据的方法都符合行业标准。OpenLayers 支持Open GIS 协会制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等网络服务规范,可以通过远程服务的方式,将以OGC 服务形式发布的地图数据加载到基于浏览器的OpenLayers 客户端中进行显示。OpenLayers采用面向对象方式开发,并使用来自Prototype.js和Rico中的一些组件。
OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类库包,用于实现标准格式发布的地图数据访问。从OpenLayers2.2版本以后,OpenLayers已经将所用到的Prototype.js组件整合到了自身当中,并不断在Prototype.js的基础上完善面向对象的开发,Rico用到地方不多,只是在OpenLayers.Popup.AnchoredBubble类中圆角化DIV。OpenLayers2.4版本以后提供了矢量画图功能,方便动态地展现“点、线和面”这样的地理数据。
在操作方面,OpenLayers 除了可以在浏览器中帮助开发者实现地图浏览的基本效果,比如放大(Zoom In)、缩小(Zoom Out)、平移(Pan)等常用操作之外,还可以进行选取面、选取线、要素选择、图层叠加等不同的操作,甚至可以对已有的OpenLayers 操作和数据支持类型进行扩充,为其赋予更多的功能。例如,它可以为OpenLayers 添加网络处理服务WPS 的操作接口,从而利用已有的空间分析处理服务来对加载的地理空间数据进行计算。同时,在OpenLayers提供的类库当中,它还使用了类库Prototype.js 和Rico 中的部分组件,为地图浏览操作客户端增加Ajax 效果。
OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计。版本2虽然被广泛使用,但从JavaScript开发的早期发展阶段开始,已日益现实出它的落后。 OL3已运用现代的设计模式从底层重写。
最初的版本旨在支持第2版提供的功能,提供大量商业或免费的瓦片资源以及最流行的开源矢量数据格式。与版本2一样,数据可以被任意投影。最初的版本还增加了一些额外的功能,如能够方便地旋转地图以及显示地图动画。
OpenLayers 3同时设计了一些主要的新功能,如显示三维地图,或使用WebGL快速显示大型矢量数据集,这些功能将在以后的版本中加入。
一套GIS的完整开发框架,包括四个组成部分:标准层、数据库层、平台层和组件层。这四个部分从下到上,从底层到高层,共同构成一个完整的体系。
众多方案的对比:
1.采用互联网公开地图服务baidu地图,高德地图,google地图,QQ地图,世纪高通地图,阿里云地图,51地图,搜狗地图。内网安全及断网问题无法解决。
2.GeoServer+GeoWebCache+OpenLayers(OpenScales)+Udig◦地图数据怎么办,从哪里得到那么细致的街道数据?(肯定要花钱买)另学习成本极其高,不是一般非地理专业的IT人士所能搞定的,没2-3月的学习无法上手开始开发。
3.商业中间件◦Supermap,ArcGis等等,简直是恶梦,首先几十-百万的费用不说,复杂的系统结构,庞杂的地图专业知识,足以拖死一个团队。
最头疼的是GIS地图数据的获得:
空间数据导入/转换地理数据的获取 地理数据来自文件、数据库和WMS/WFS服务器。文件方式:支持读取的地理数据文件:ESRIShape、MapinfoTab/Mif、GeomediaAccess等,建议使用Shape文件格式,Oracle和PostgreSQL提供Shape文件导入数据库的程序。
WMS/WFS服务器:Internet上有很多开放的GIS应用服务器,例如NASA、InterGraph、TerraServer等,通过它们获取各种免费地图资源。
http://nfgis.nsdi.gov.cn/nfgis/chinese/c_db.htm(国家基础地理信息系统)◦
http://www.gadm.org/
http://www.openstreetmap.org
GoogleMap资源:GoogleMap没有采用标准的WMS/WFS协议,可以通过调用开放的GoogleMap API,附加自定义的WMS/WFS图层,实现应用目的。例如:通过GoogleMap可以免费获取高分辨的GoogleMap卫星地图。