Transcript 三、Flex
WebGIS三部曲对OGIS应用
内容大纲
一、WebGIS及其规范
二、WebGIS常用前端开发技术
三、OGIS基本原理
四、ArcGIS Flex Viewer使用 OGIS
1、WebGIS及其规范
一、什么是WebGIS?
二、GIS服务规范
1.1、什么是WebGIS?
WebGIS是利用Web技术来扩展和完善地理信息系统的
一项技术。它是基于网络的客户机/服务器系统;利用
因特网来进行客户端和服务器之间的信息交换;它是一
个分布式系统,用户和服务器可以分布在不同的地点和
不同的计算机平台上。WebGIS主要作用是进行空间数
据发布、空间查询与检索、空间模型服务、Web资源的
组织等。
前期使用矢量数据
现在使用瓦片为底图
1.2GIS服务规范
Web Feature Service WFS 要素Web服务
Web Map Service WMS 地图Web服务
Web Map Tile Service WMTS 切片地图Web服务
1.2.1、 WMTS服务规范
WMTS,即Web Map Tile Service(网络地图瓦片服
务),由开放地理信息联盟(Open GeoSpatial Consortium,
OGC)制定,是和WMS并列的重要OGC规范之一。WMTS
不同于WMS,它最重要的特征是采用缓存技术能够缓解
WebGIS服务器端数据处理的压力,提高交互响应速度,大
幅改善在线地图应用客户端的用户体验。WMTS是OGC主推
的缓存技术规范,是目前各种缓存技术相互兼容的一种方法。
1.2.1、 WMTS服务规范
服务接口:
1. GetCapabilities
获取服务的元信息,包括瓦片坐标系、级别信息
实例: service=WMTS&request=GetCapabilities
2. GetTile
获取切片,根据行列号获取切片地图
实例:
service=WMTS&request=GetTile&version=1.0.0&layer=etopo2&style=default
&format=image/png&TileMatrixSet=WholeWorld_CRS_84&TileMatrix=10m
&TileRow=1&TileCol=3
3. GetFeatureInfo
可选,获取点选的要素信息
2、WebGIS常用前端开发技术
一、JavaScript
JavaScript是一种类C的动态语言,广泛用于网页前端编程,目前也有
运行于服务端后台的实现,如Node.js。
二、Silverlight
由微软公司推出的跨浏览器的、跨平台的插件,为网络带来下一代基
于.NET的媒体体验和丰富的交互式应用程序。Silverlight提供灵活的编程模
型,并可以很方便地集成到现有的网络应用程序中。Silverlight可以对运行
在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传
递。
三、Flex
由Macromedia公司在2004年3月发布的,基于其专有的Macromedia
Flash平台,它是涵盖了支持RIA(Rich Internet Applications)的开发和部署
的一系列技术组合。
2.1、 Flex技术
Flex 是一个高效、免费的开源框架,可用于构建
具有表现力的 Web 应用程序,这些应用程序利用
Adobe Flash Player和 Adobe AIR, 运行时跨浏览器、桌
面和操作系统实现一致的部署。
2.1、 Flex技术
Flex VS JavaScript
一、Flex 比JavaScript界面更华丽、表现力更强。
二、Flex对流媒体的支持更好,可支持视频文件播放,摄像头视频播
放等。
三、Flex 需要浏览器插件支持, JavaScript不需要。
四、 JavaScript与网页其它元素的交互更简便,集成更容易。
2.1、 Flex技术
Flex仪表控件
2.1、 Flex技术
Flex流媒体支持
2.1、 Flex技术
ArcGIS Flex Viewer 的动态标绘功能
2.1、 Flex技术
Flex VS Silverlight
一、同样拥有华丽的界面和很好的表现力。
二、在网页上同样需要插件支持。
三、Flex的开发环境及语言特性更像Java,Silverlight使用C#等语言编
程更合适.Net开发人员。
四、Flex 产品更成熟,用户装机量更大。
3、OGIS基本原理
一、2.5D与平面地图的关系
二、 2.5D瓦片切图方式
三、地图热区
四、坐标转换
3.1、2.5D图制图原理
从平面地图到2.5D步骤:
1、顺时针旋转45度
2、地图高度设置为:原 高度*sin(45)
3.1、2.5D图制图原理
平面图
2.5D图
3.2、地图切图方式
将大图按6个等级切图,瓦片的尺寸是256*256。
第一级比例尺最大,也就是原2.5D大图的缩放比。
第二级的比例尺为第一级的1/2,剩下各等级依次类推。
3.2、地图切图方式
某等级与其更高一级的命名规则是:
本等级的名称的行列分别乘以2,结果即为高一级的第一个瓦片的命名。
136,132.jpg
68,66.jpg
136,133.jpg
137,132.jpg
137,133.jpg
3.3、地图热区
1、热区由2.5D图切片后
导入系统,在系统绘制
得到。
2、为了提高热区访问
效率,将热区根据坐标
区域导出个相应的js脚
本文件中。
3.3、地图热区
1、热区文件与坐标点对应
关系:
某点的OGIS坐标为x,y,则该点对应的热区
文件是 x/4096,y/4096.js
2、热区文件所在文件夹命
名规则:
热区文件的x序号的前两位
3.3、地图热区
1、热区数据规则:
亲
,
能
听
懂
不
?
4、ArcGIS Flex Viewer 使用 OGIS
一、底图加载
二、热区展示
4.1、底图加载
一、当前视图窗口内的瓦片是如何算出来的?
二、地图上某点的所在的瓦片是哪个?
三、地图窗口内的任意一点的坐标是如何算出来的?
4.1、底图加载
什么是地图像素Resolution(分辨率)?
Resolution 是1像素代表多少地图单位。
例子:如果地图的坐标单位是米, dpi为96
1英寸= 2.54厘米;
1英寸=96像素;
最终换算的单位是米;
如果当前地图比例尺为1: 125000000,则代表图上1米实地125000000米;
米和像素间的换算公式:
1英寸=0.0254米=96像素
1像素=0.0254/96 米
则根据1:125000000比例尺,图上1像素代表实地距离是
125000000*0.0254/96 = 33072.9166666667米。
4.1、底图加载
像素分辨率示例
所在等级 像素分辨率
比例尺
4.1、底图加载
地图窗口内的任意一点的坐标计算方式
1、获取该点在地图窗口中的像素坐标(pX,pY)。
2、获取左上角地理坐标(ltX,ltY)
3、该点X=ltX+pX* Resolution
该点Y=ltY+pY* Resolution
4.1、底图加载
地图上某点的所在的瓦片计
算法:
1、设定坐标原点为0,0,某点的坐标是
x,y
2、瓦片行号:最小整数(x/ Resolution/
瓦片宽度(256))
瓦片列号:最小整数(y/ Resolution/
瓦片高度(256))
4.1、底图加载
当前视图窗口内的瓦片行列号
1、求出四个角的瓦片行列号
2、从左到右,从上到下遍历求出所有瓦片行列号
4.1、底图加载
ArcGIS Flex Viewer代码实现:
一、继承自TiledMapServiceLayer类
二、设定坐标系统及像素分辨率信息
三、重写获取瓦片方法
4.2、热区展示
如果将热区与底图吻合?
4.2、热区展示
4.2、热区展示
一、缩放比
二、偏移量
4.2、热区展示
4.2、热区展示
ArcGIS Flex Viewer代码实现:
一、继承自TiledMapServiceLayer类
二、侦听map控件的地图视图变化事件(EXTENT_CHANGE)
三、获取最新地图范围内的热区文件
四、加载热区文件,解析热区。
五、GraphicsLayer图层中绘制热区,并绑定事件
亲,还想知
道点哈?