


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
要在地图中定位一个点,最常见的就是使用一个地理坐标来定位。但是,谷歌地图 API 还提供了不同于地理坐标的多套坐标系统,方便我们在需要的时候使用不同的坐标来定位在地图上显示的信息。我在右边的地图中演示了这些坐标,可以把的鼠标移到地图上看看,注意要展开 “ 鼠标位置 ” 的内容啊 :) 。 这些坐标系统可以简单的总结如下(这些系统是我自己命名的,呵呵,有些系统我也不知道应该怎么称呼): 1 、地理坐标系统 地理坐标纵向以赤道所在维度线为原点,分别向南北极延伸,最大值为 90 。横向以格林威治天文台旧址所在的经度线(本初子午线)为原点,分别向东西延伸,最大值为 180 。海拔坐标在这里就暂时忽略吧。 地理坐标的表示方式主要有两种:一种是以度分秒 / 度分的方式表示,比如( 3956N , 11620E );还有一种是使用十进制数的方式表示,比如( 39.9333 , 116.3333 )。在表示一个地理坐标的时候,习惯上都使用先纬度后经度的顺序来描述一个坐标,并且,对前一种坐标,是使用追加字母缩写的方式表示方向,而在后一种方式中,一般会使用 X 轴表示经度, Y 轴表示纬度,按照上北下南左西右东的的原则来给坐标加上对应的符号,所以,对( 39.9333 , 116.3333 )我们通常就理解为北纬 39.9333 度、东经 116.3333 度。 在谷歌地图 API 中使用后一种方式来表示地理坐标,并使用 GLatLng 这个类来规范的定义一个地理坐标,该类的构造函数中,第一个参数是纬度,第二个参数是经度。需要注意的是,这两个参数的顺序不同于我们在坐标系中先 X 后 Y 的表达方式,而是按照地理坐标先纬度后经度的习惯来表示一个地理坐标,这个原则基本适用于地图 API 中所有需要表达地理坐标的地方。 2 、图块坐标系统 谷歌地图是使用一系列的大小相同的图片拼接起来的,这些图片在谷歌地图中称之为图块( Tile )。所以,你可以把谷歌地图理解为是使用图块 / 图片填充起来的一系列网格,在不同的缩放级别,地图被分解为不同数目的网格。详细的说,在缩放级别为 0 的时候,整个世界地图只有一个网格,缩放级别每增大一级,所有的网格在横向和纵向就分割一次,也就是说,对应于某一特定的缩放级别 N ,网格的数目就是 4 的 N 次方,即 4N 。这些网格所组成的坐标系统,就是图块坐标系统。 在图块坐标系统中,以缩放级别为 0 时的世界地图为原点,在缩放级别增大的时候分别向下( Y 轴)和向右( X 轴)延伸,这样,在指定的缩放级别,我们就可以用一个坐标来指定特定的图块了,如果你有意用你自己的图片替换掉地图中的某个图块,这个坐标系统就能派上用场了。谷歌地图 API 中还没有一个直接的方法可以取得图块的坐标,要取得这个坐标,你需要继续往下看。 3 、像素坐标系统 上面说到谷歌地图是由一系列大小相同的图片拼接起来的,其实这些图块的大小也是固定的,都是 256256 像素大小,所以,在不同的缩放级别,世界地图的像素大小也是固定,比如在缩放级别为 0 的时候,世界地图的像素大小就是 25625640 。这样,在特定的缩放级别,因为世界地图的像素大小是固定的,组成世界地图的所有像素点就可以形成了一个完整的坐标系统,我们也就可以用像素坐标代替地理坐标指定地图上的某个点,这个坐标系统就是像素坐标系统。 像素坐标系统以缩放级别为 0 时的世界地图的左上角为原点,使用与图块坐标系统相同的 X 轴和 Y 轴,在缩放级别增大的时候分别向下和向右延伸。像素坐标与地理坐标可以相互转换,他们之间的主要区别在于,像素坐标是平面的二维坐标,而地理坐标是曲面的二维坐标(不考虑海拔坐标)。 在谷歌地图 API 中,可以使用 GProjection.fromLatLngToPixel(latlng, zoom) 这个方法通过地理坐标得到对应的像素坐标,相反的,可以使用 GProjection.fromPixelToLatLng(pixel, zoom) 这个方法由像素坐标得出对应的地理坐标。 现在,我们在看看如何通过像素坐标获取对应的图块坐标。上面已经提到每个图块都是 256256 像素的固定大小,所以,使用像素坐标值除以 256 并取整,就可以得到这个像素坐标所在的图块坐标了。使用代码说话: Math.floor(x / 256) , x 就是像素坐标的 x 值,这个表达式得到的结果就是像素所在图块的横坐标,纵坐标算法相同。 4 、 DOM 相对坐标系统 这里的 DOM 是指页面上装载地图的容器,一般是 div 元素。把这个坐标系统看作是基于 DOM 元素而不是基于地图的坐标系统或许更易于理解,这个系统里的坐标指定的是某个点在这个 DOM 容器里的位置,以这个容器的左上角为原点,分别向下( Y 轴)和向右( X 轴)延伸。所谓相对坐标,是指这个坐标系统相对地图是固定的,原点不会随地图的拖拽而变化。 在谷歌地图 API 中,使用 GMap2.fromLatLngToContainerPixel(latlng) 可以取得地图上某个点在 DOM 容器中的位置,相反,你可以通过 GMap2.fromContainerPixelToLatLng(pixel) 方法来获取 DOM 容器中某个位置在当前地图上的坐标。 这个坐标系统在你需要在 DOM 容器上添加一些自定义控件并与地图交互的时候可能会有用。 5 、 DOM 绝对坐标系统 这个坐标系统是相对上一个系统来说的,从字面可以理解为这是定位在地图上而不是相对地图的坐标系统,如果你在加载地图后只是缩放而没有拖拽地图,那么你会发现这个坐标系统和 DOM 相对坐标系统是重合的。但是,一旦你拖拽地图,就会发现他们的差别了,实际效果你可以在右边的地图里试试。结论就是,这个坐标系统的原点是与 DOM 容器的左上角重合的地图上的点,在拖拽地图的时候原点会随着地图变化,原点左边和上面的点使用负值表示。 这个坐标系统中的坐标和地图上的地理坐标可以用 GMap2.fromLatLngToDivPixel(latlng) 、 GMap2.fromDivPixelToLatLng(pixel) 这两个方法实现相互转换,在你自定义地图上的叠加层的时候,这两个方法就可以派上用场了。 有一个问题我还没完全理清,就是在 DOM 容器里出现多个世界地图的时候,也就是 DOM 容器足够大的容纳下多个世界地图的图块时, DOM 相对坐标和 DOM 绝对坐标这两个系统显示的坐标似乎有点紊乱,如果你理清了,找出了规律,欢迎共享出来。 最后提一下 GSize ,在说到地理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级信息技术下册 赢在网络时代教学设计 青岛版
- 服装新员工入职培训方案
- 【平安证券】经济结构转型系列报告之二:中国经济结构转型与中长期投资机遇展望
- 2024中铝海外发展有限公司公开招聘3人笔试参考题库附带答案详解
- 人教精通版英语六年级下册 Revision 教学教案+音视频素材
- 二年级数学下册 五 加与减第7课时 算得对吗1教学设计 北师大版
- 人教版地理七上2.1《大洲和大洋》备课指导及教学设计
- 初中语文-第六单元《庄子与惠子游于濠梁之上》庄子二则教学设计-2024-2025学年统编版语文八年级下册
- 初中语文人教部编版(2024)八年级上册背影第一课时教案设计
- 人教部编版历史七下2.9《宋代经济的发展》教学设计
- 人教版初中数学《等腰三角形》-课件-
- 【必刷题型07】机械能守恒与能量守恒问题(原卷版)
- 2024年大学生信息素养大赛(省赛)练习考试题库(含答案)
- 新人教版一年级数学下册全册教案(表格式)
- 2024年全国(保卫管理员安全及理论)知识考试题库与答案
- 基础模块2 Unit5 Ancient Civilization单元测试-2025年中职高考英语一轮复习讲练测(高教版2023修订版·全国用)
- 《中国心力衰竭诊断和治疗指南2024》解读
- 月考分析与总结 课件高二下学期家长会
- DL∕T 1245-2013 水轮机调节系统并网运行技术导则
- 2024版父子房屋买卖合同协议书
- 《三国演义》导读课(教学设计)统编版语文五年级下册
评论
0/150
提交评论