基于Web墨卡托投影地理信息系统设计与实现

上传人:汽*** 文档编号:464166118 上传时间:2023-11-05 格式:DOC 页数:5 大小:782.19KB
返回 下载 相关 举报
基于Web墨卡托投影地理信息系统设计与实现_第1页
第1页 / 共5页
基于Web墨卡托投影地理信息系统设计与实现_第2页
第2页 / 共5页
基于Web墨卡托投影地理信息系统设计与实现_第3页
第3页 / 共5页
基于Web墨卡托投影地理信息系统设计与实现_第4页
第4页 / 共5页
基于Web墨卡托投影地理信息系统设计与实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于Web墨卡托投影地理信息系统设计与实现》由会员分享,可在线阅读,更多相关《基于Web墨卡托投影地理信息系统设计与实现(5页珍藏版)》请在金锄头文库上搜索。

1、许辉,马晓鹏(沈阳军区空军指挥自动化工作站,沈阳 110015)摘 要: 基于 Web 墨卡托投影,详述了构建桌面地理信息系统的坐标变换算法、图块组织、双缓冲地图显示和漫 游、缩放、测距等地图通用操作的方法和技巧。关键词: GIS; EPSG:3857; 投影; 坐标; C#Geographic Information System Design and ImplementationBased on Web Mercator ProjectionXU Hui , MA Xiaopeng(Shenyang Air Force Command Automation Workstation , Sh

2、enyang 110015)Abstract:Based on Web Mercator projection, Gives the build desktop geographic information system for the coordinate transformation algorithm, tile organization, double buffer map display and pan, zoom, distance and other common operating methods and techniques.Key words:GIS ; EPSG:3857

3、 ; Projection ; Coordinate ; C#1概述近年来,谷歌、微软、雅虎等公司相继在互联网上推出 各自的数字电子地图系统,使用者可以在全球范围内浏览卫 星、街区、地形等图像。由于软件设计精巧、图层细致、内 容丰富,深受用户喜爱。通过对这些系统的投影、坐标和图 块组织方式的分析研究,提出了在桌面自行构建地理信息系 统的方法,并在 Visual Studio 2008 开发环境下使用 C# 语言实 现。2Web 墨卡托投影地图投影就是按照一定的数学法则,把地球表面映射到 平面的理论和方法,要使一张平面地图和一个立体球面完全 统一起来是不可能的,所以才有成百上千种投影方式,各有

4、侧重点,以适合不同地区、不同用途、不同精度的要求。墨卡托投影又称“等角正轴圆柱” 投影,由荷兰地图学 家墨卡托在 1569 年创拟,其基本原理是假设有一个在赤道与 地球相切的圆柱体,先把椭球面映射到圆柱体表面,然后展 开圆柱面,即实现了球平转换。该投影具有等角特性,保证 了对象的形状不会变形,同时也保证了方向和相互位置的正 确性,因此常常在航海和航空中应用。互联网上数字电子地图大部分都基于墨卡托投影,称作 Web 墨卡托,谷歌公司为它编号为 900913。起初,EPSG 组 织并不承认该投影,随着该投影的应用越来越广,影响也越 来越大,EPSG 接受了该投影并正式命名为 EPSG:3857,新

5、版 的 MapInfo Pro v10 里也新增了对该投影的定义,名称为 Pop ular Visualization CRS。 该投影把地球看 做球体,半径取 6378137.0 米,主要为了计算上的简单和实现方便,理论上精 度差在 0.33%之内,在大比例尺、地物更详细的时候,差别基本可以忽略。如图 1 所示,该投影坐标原点位于赤道和本初是20037508.34 米,对应地理坐标180。纬线和纬线之间相互平行,间隔从赤道开始 向两级逐渐增大,范围也是 20037508.34 米,对应地理坐标85.05,删除了南北两极的部 分区域。这样处理,有两个好处,一是使整幅地图呈正方形, 方便计算机处

6、理、提高显示效率,二是去除了两极面积变形 比较大的地区。图 1 Web 墨卡托投影坐标及坐标变换要在平面的计算机屏幕上表现地球,需要了解地理、投3影、像素、图块和屏幕这 5 个坐标的概念,并掌握它们之间作者简介:许辉 (1963-),男,高级工程师,学士,研究方向:指挥信息系统;马晓鹏 (1976-),女,工程师,硕士, 研究方向:计算机网络。的变换方法。3.1 地理坐标地理坐标是地球椭球面坐标,以经度、纬度为单位。本 初子午线作为中央经线,向东为正,向西为负,范围180, 赤道作为标准纬线,向北为正,向南为负,范围90,本初子 午线和赤道的交点为坐标原点。3.2 投影坐标 投影坐标取决于投影

7、方式,它是平面坐标,以米为单位。对于 Web 墨卡托投影,取地球半径 R=6378137.0 米,地图的 中心点,也就是本初子午线和赤道的交点为坐标原点。该投 影下的整幅世界地图呈正方形,取 值 范 围 为 20037508.342789244 米,对应地理坐标经度范围是180、纬度范围是85.05113。表 1 不同缩放级别下图宽、图块数量、分辨率对应关系每个缩放级别的图块坐标原点都位于图块组的左上角,X轴向右延伸,Y 轴向下延伸。某一缩放级别 N 下的像素分辨率 Res 为:Res=Math.PI * R / Math.Pow (2, 7 + N);像素坐标 imageX , imageY

8、 到图块坐标 tileX, tileY 转 换代码为:tileX = imageX / 256 ; tileY = imageY / 256 ; 其反变换代码为: imageX = tileX * 256 ; imageY = tileY * 256 ;地图在计算机屏幕上是以像素为单位进行显示和操作的,所以还需要得到当前点在图块中的像素偏移,代码为:imageOffX = imageX % 256;imageOffY = imageY % 256;3.5 显示坐标显示坐标以像素为单位,坐标原点位于屏幕上用于显示 地图的画板的左上角,X 轴向右为正,Y 轴向下为正。由于受 计算机屏幕尺寸和分辨率

9、的限制,在计算机屏幕上显示地图, 其实就是把像素坐标下图幅的一部分复制到屏幕画板。地理坐标 lon , lat 到 Web 墨卡托坐标 mctX, mctY换代码为:double mctX = lon * Math.PI * R / 180.0;转double mctY = Math.Log (Math.Tan (PI / 360.0 ) / (Math.PI / 180.0) ;mctY = mctY * Math.PI * R / 180.0;其反变换代码为:double lon = (mctX / (Math.PI * R)double lat = (mctY / (Math.PI *

10、R)(90 + lat)* Math.* 180.0;* 180.0;lat = 180 / Math.PI * ( 2 * Math.Atan ( Math.Exp ( lat *Math.PI / 180.0) - Math.PI / 2.0) ;3.3 像素坐标一旦确定了投影方式,投影坐标值固定不变,像素坐标 通常是变化的,除非不需要进行缩放显示。像素坐标与投影 坐标的关系,取决于用多少像素来表现整幅世界地图。为了 与屏幕显示坐标一致,像素坐标的原点位于图幅的左上角,X 轴向右延伸,Y 轴向下延伸。Web 墨卡托坐标 mctX,mctY 到像素坐标 imageX , imageY 转换代

11、码为:imageX = (mctX + Math.PI * R) / Res ; imageY = ( Math.PI * R - mctY) / Res ; 其反变换代码为:mctX = imageX * Res - Math.PI * R ;mctY = Math.PI * R - imageY * Res ;其中,Res 是像素分辨率,如果像素图幅的宽高相等,其 等于地球周长除以图幅像素,代码为:Res = 2 * Math.PI * R / maxImage;3.4 图块坐标大部分的数字电子地图是由事先制作好的一块块大小相 同的图片无缝拼接而成,称为图块,每个图块的尺寸为 256256

12、 像素,设置了不同级别的图块组来适合不同缩放比例的显 示,每增加一个缩放级别,图幅宽度为前一级的 2 倍,图块 数量为前一级的 4 倍,呈金字塔状。表 1 列出了不同缩放级 别下图宽、图块数量和像素分辨率之间的对应关系,可以看 出,当缩放级别为 1 时,世界地图由 4 个图块组成,当缩放 级别为 2 时,世界地图由 16 个图块组成,以此类推。图块组织方式图块可以保存在远程数据库中,实现网络共享,也可以 按照图块种类、缩放级别、列的目录结构,以文件方式保存 在本地磁盘,图块文件名要包含图块种类、列坐标、行坐标、 缩放级别等内容,方便管理和读取。例如:GM763GM_63_28_7.png,表示

13、该文件是缩放级别 为 7、列坐标为 63、行坐标为 28、图块数据格式为 png 的一 个街道图图块,存储在 GM763 目录下。4地图显示和操作启动 Visual Studio 2008,新建一工程,在窗体上放置画板 pictureBox1 和菜单栏、工具栏。其中,画板用来显示地图; 工具栏添加图类、漫游、归心、放大、缩小、测距等按钮, 实现地图的基本操作;状态栏用来显示当前经纬度等信息, 构成的界面如图 2 所示。设置整数变量 N 表示当前的缩放级别,设置双精度变量 mctX,mctY 表示当前画板中心点对应的墨卡托坐标,并由 此计算出该点对应的图块坐标 tileX , tileY 和像素

14、偏移 ima geOffX , imageOffY。5级别图宽 (像素)图块数量分辨率(米/像素)15122278271.5170210244439135.7585320488819567.87921733,554,4321310721310721.19431867,108,8642621442621440.5972N2562N2N2N2R/(2562N)化,根据缩放级别计算出新的图块坐标和像素偏移,取图块显示地图。为了加快显示速度,可以利用先前保存的内存图像进行 放大或缩小,然后再取实际图块进行显示。临时放大图像代码:Graphics g = pictureBox1.CreateGraphi

15、cs () ;Rectangle destRect = new Rectangle ( 0, 0, pictureBox1. Width, pictureBox1. Height) ;int x1 = ( 256 * 12 - pictureBox1.Width) / 2 + tileX +pictureBox1.Width / 4;int y1 = ( 256 * 10 - pictureBox1. Height) / 2 + tileY +pictureBox1. Height / 4;Rectangle srcRect = new Rectangle ( x1, y1, pictureBox1. Width / 2, pictureBox1. Height / 2) ;GraphicsUnit units = GraphicsUnit.Pixel;g.DrawImage (MemImg, destRect,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号