定范围切图比例尺计算_第1页
定范围切图比例尺计算_第2页
定范围切图比例尺计算_第3页
定范围切图比例尺计算_第4页
定范围切图比例尺计算_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Tom Xu:gis.tom January, 2007 地质大学()基于 ArcIMS 的地图切图原理(定范围)一、说明此切图原理服务于基于预生成技术的Web地图显示系统,这种技术在 2006 年已经广泛应用于公共地图服务领域,国内用户使用较多的GoogleMaps、Microsoft Live Map、YahooMaps、51ditu、Mapbar、SogouMap等;上述系统的地图固定范围切一级一级的图片,对于切图之后的数据源,相应的客户端显示也已经有很多开源可用的系统,MapEasy、OpenLayer等,这些系统大同小异,大多基于Javascript或Flash技术,服务端系统则随应

2、用内容千差万别,但主要集中在位置服务(LBS),目前较为典型的应用是路径分析、点(POI)、GPS定位等。地图的预生成将指定范围的地图按照指定(如 256,300等)和指定格式(如JPEG,PNG等)切成若干行及列的正方形图片,切图所获得的地图切片也叫瓦片(Tile),瓦片的获取由ArcXML请求与响应来实现,流程如图 1 所示。切图只能得到二维矢量数据对应的栅格图,三维矢量地图的切图需要借助AutoCAD、3DMax等工具实现,另有文章详细说明。第 1 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()图 1 ArcXML 请求示意切图之前需要对某一范围的

3、原始值进行(借助经验和专业数学如进行计算),使其长高比为某一便于切图的比例(如 3:2,2:1 等),然后从左上角(西北)开始对此固定范围进行数据结构,第 level 级上的切图,后续的不同等级地图之间采用四一张瓦片(Tile)到第 level+1 级将裂变成 4 张,这种结构有助于切图和显示,但得出的地图没有固定的比例尺,比例尺随地理纵坐标变化,因此进行地理量算时不是根据比例尺而是根据地理坐标直接计算。切图地图数据源根据地理范围采用不同的地图投影,对于世界地图,主要采用正圆柱、伪圆柱和多圆锥投影;对于东西延伸的中纬度地区(如与),主要采用正轴圆锥投影,如图 2 所示。第 2 页 共 13 页

4、Tom Xu:gis.tom January, 2007 地质大学()图 2 采用等距圆锥投影的地图示意这样使用投影的地图数据随着位置向两极延伸,角度、长度或面积的变形越来越大,但对于表现某一区域的形状却很有利。这也是Google、Yahoo及国内众多在线地图服务的数据源投影选择的依据,如图 3 和图 4 所示。图3 GoogleMaps全图时的世界地图第 3 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()图 4 ArcMap 中选用 World_Mercator 投影时的世界地图GoogleMaps即采用Mercator投影,最终的世界全图两极变形较大

5、,但考虑到世界上的主要都位于赤道两侧的中低纬地区,所以采用这种投影是可行的。Yahoo也是如此,两者的数据由同一家公司提供。二、约定:1、地图等级为从 1 开始、行列数为从 0 开始的整数;2、地图范围的极值用XMin,XMax,YMin,YMax 表示;第 4 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()用Dx 表示横坐标差, Dy 表示纵坐标差;3、4、读者具备 ArcIMS 及 ADF 的基本知识和一定的 OOP 经验;5、地图瓦片名采用包含地图等级、行列数的方式,如“zoomx_row_column”,其中 x 表示地图等级,row 和 col

6、umn 分析表示当前瓦片所处的行数和列数;6、该切图借助MapEasy测试。三、算法流程图 5 用于表示切某一指定级别地图的流程。第 5 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()图 5 地图切图流程第 6 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()四、地图切片数量和比例尺1、地图切处数量设第一个等级地图切片的为 m 行 n 列,则第 level 级地图切片行列数如下:行数: m ´ 2 level-1 , level³ 1列数: n ´ 2level-1, level 

7、79; 12、比例尺设 width 为根据当前可视范围中点处的纬度计算的全图地理宽度:m),tileSize 为地图瓦片像素大小(如 256,300 等),dpi(Dot(Per Inch)监视器参数值(为 96),当前级别地图的列数为columns,则当前可视范围中点处的比例尺分母为:widthcolumns ´ tileSize ´ 2.54 ¸100dpi上式中的 2.54 表示1inch = 2.54cm ,100 表示1m = 100cm 。在较小地理范围内可用此比例尺代表当前等级地图的比例尺;而较大范围、同一等级地图中,比例尺随纬度变化,此时,该计算的

8、比例尺只代表当前可视地理范围内的比例尺。五、地理坐标与图片位置正反算1、正算输入:行列对(i , j)第 7 页 共 13 页Tom Xu:gis.tom January ,2 007 地质大学()输出 : Extent 范 围 currentXMin, currentXMax, currentYMin,currentYMax第 level 级下第 i 行 j 列位置切片的坐标范围计算公式如下:Dxn ´ 2level -1currentXMin = XMin + j ´currentXMavel -1Dym ´ 2level -1currentYMin = YM

9、ax - (i + 1) ´DycurrentYMax = YMax - i ´m ´ 2level -12、反算输入:x,y(坐标值)输出: i , j(图片的行列数)i = Math.FloorYMax - y ´ n ´ 2level-1 Dyj = Math.Floor x - XMin ´ m ´ 2level-1 Dx六、ArcXML请求内容示例在 ArcXML 请求中,最基本的条件是地理范围(ENVELOPE)和图片(IMAGESIZE),如图 5 所示。第 8 页 共 13 页Tom Xu:gis.tom J

10、anuary, 2007 地质大学()图 5 ArcXML 请求示例服务器接收到请求及验证后会根据矢量图生成相应的栅格图片,并返回生成的图片的范围(ENVELOPE)及文件的位置(OUTPUT),如图 6 所示,但通过对比会发现返回结果中的地图范围与原始请求的范围不同,这是因为请求的地理范围横坐标差与纵坐标差比例与图片长宽比例不一致,这样在默认情况下服务器会根据原请求范围的中心点进行取舍以适应图片长宽比(在 ArcXML 请求中将 reaspect 属性设置成 false 将不必遵从这种比例,服务器将会拉伸实际的地理范围)。第 9 页 共 13 页Tom Xu:gis.tom January,

11、 2007 地质大学()图 6ArcXML 响应示例七、地图切片(瓦片)显示机制简介地图切毕之后可将其放置于本地或服务器的虚拟目录中以方便访问,图 7、图 8 和图 9 分别是某城市地图切图的结果文件列表。图 7 地图切片示例 1第 10 页 共 13 页Tom Xu:gis.tom January, 2007 地质大学()图 8地图切片示例 2图 9地图切片示例 3在需要显示某个范围(Extent)的地图时,根据前述坐标与图片位置正反算公式即可计算出需要哪些图片,然后借助客户端技术将这些图片无缝地拼接在一起,即可得到用户所需要的地图,如图 10 所示。目前最主要的 Web 地图服务商都是采用这种办法显示地图,视觉上感觉是连续的地图在都是一张张命名规则的相同的预先切图片,虽然格式各不相同(如Jpeg、PNG 等),客户端显示各不相同(有基于 Javascript,有基于 Flash),但都借助预生成技术和界面友客户端提高了地图浏览速度,增加了用户体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论