加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

百度舆图API详解之舆图坐标体系

发布时间:2018-10-07 03:13:33 所属栏目:运营 来源:站长网
导读:我们都知道地球是圆的,电脑表现器是平的,要想让位于球面的外形表现在平面的表现器上就肯定必要一个转换进程,这个进程就叫做投影(Projection)。在地球上我们通过经纬度来描写某个位置,而颠末投影之后的舆图也有本身的坐标体系,本篇文章就来具体先容在

我们都知道地球是圆的,电脑表现器是平的,要想让位于球面的外形表现在平面的表现器上就肯定必要一个转换进程,这个进程就叫做投影(Projection)。在地球上我们通过经纬度来描写某个位置,而颠末投影之后的舆图也有本身的坐标体系,本篇文章就来具体先容在百度舆图API中涉及的各类坐标系统。

在百度舆图API中,你必要相识如下坐标系:

经纬度:通过经度(longitude)和纬度(latitude)描写的地球上的某个位置。

平面坐标:投影之后的坐标(用x和y描写),用于在平面上标识某个位置。

像素坐标:描写差异级别下舆图上某点的位置。

图块坐标:舆图图块编号(用x和y描写)。

可视地区坐标:舆图可视地区的坐标系(用x和y描写)。

包围物坐标:包围物相对付容器的坐标(用x和y描写)。

别被这么多的坐标系吓着,看完了后头的讲授信托你会逐渐领略它们。

经纬度

这个就不多说了,不认识的可以翻翻地理书。但必要留意的是即便同是经纬度坐标也也许属于差异的坐标系统。一样平常GPS装备获取的经纬度属于WGS84坐标系,这是一个较量通用的坐标系统。因为某些缘故起因海内不能直接行使WGS84坐标,因此百度舆图API的经纬度是颠末加密偏移的。

平面坐标

前面说过,球面上的外形必要颠末投影才气调动为平面上的外形,调动后就必要有一个平面坐标体系来描写舆图上某个位置。百度舆图API默认行使墨卡托投影(Mercator Projection),同样必要留意的是因为投影参数差异,同样是墨卡托投影也会有所不同。

平面坐标系的原点与经纬度的原点同等,即赤道与0度经线相交的位置:

百度舆图API详解之舆图坐标体系

在百度舆图API中,平面坐标是以最大级别18级为基准的。就是说在18级下,平面坐标的一个单元就代表了屏幕上的1个像素。平面坐标与舆图所展示的级别没有相关,也就是说在1级和18级下,天安门位置的平面坐标都是同等的。那么怎样知道某个位置的平面坐标呢?可通过BMap.MercatorProjection类来完成,该类提供经纬度与平面坐标相互转换的要领。譬喻天安门的经纬度约莫为116.404, 39.915,颠末转换即可获得平面坐标:

var projection = new BMap.MercatorProjection();var point = projection.lngLatToPoint(new BMap.Point(116.404, 39.915));alert(point.x + ", " + point.y);功效如下:

百度舆图API详解之舆图坐标体系

这个就是平面坐标。你可以这样领略它的寄义:第18级下,天安门间隔坐标原点的位置差为:12958175, 4825923.77,单元为像素。

像素坐标

在第18级下,我们直接将平面坐标向下取整就获得了像素坐标,而在其他级别下可以通过如下公式举办换算(这里取整为向下取整):

像素坐标 = |平面坐标 × 2 zoom - 18|好比颠末计较,在第4级天安门位置的像素坐标是:790, 294

百度舆图API详解之舆图坐标体系

差异级别下,统一个地理位置的像素坐标是纷歧样的,它与当前舆图的级别相干。

图块坐标

百度舆图API在展收?图时是将整个舆图图片切割成多少图块来表现的,本舆图初始化或是舆图级别、中心点位置产生变革时,舆图API会按照当前像素坐标计较出视野内必要的图块坐标(也叫图块编号),从而加载对应的图块用以表现舆图。

百度舆图的图块坐标原点与平面坐标同等,从原点向右上方开始编号为0, 0:

百度舆图API详解之舆图坐标体系

怎样知道某个位置的图块坐标呢?通过如下公式计较即可(这里为向下取整):

图块坐标 = |像素坐标 ÷ 256|256现实上是每个图块的宽度和高度,我们用像素坐标除以这个数就知道图块坐标了。还以天安门为例,在第4级下天安门地址的图块编号为:3, 1,而在第18级下,图块编号为:50617, 18851

可视地区坐标

舆图都是表现在确定巨细的矩形框中的,这个矩形框凡是是开拓者在初始化舆图传入的某个容器元素。这个矩形框也有本身的坐标系,在百度舆图API中称之为可视地区坐标系,它的原点位于矩形的左上角。

百度舆图API详解之舆图坐标体系

通过Map类的pointToPixel和pixelToPoint要领可以彼此转换经纬度坐标与可视地区坐标。

包围物坐标

包围物在实现上就是多少DOM元素,这些元素会被放在多少包围物容器内(详细请参考舆图API开拓指南),那么包围物的坐标现实上就是相对付这些包围物容器的坐标。在舆图初始化完成后,包围物容器的左上角与舆图可视地区左上角位置沟通,一旦舆图被移动、缩放,包围物容器位置就会产生变革。在自界说包围物的时辰API提供经纬度信息,而开拓者必要自行将经纬度转换为包围物的像素坐标,从而包围物才气表现在正确的位置上。这个转换进程可以通过Map的pointToOverlayPixel和overlayPixelToPoint两个要领来实现。

讲这么多都快晕了吧,我们最后通过一个完备的代码示例往返首上面所提到的坐标系观念:


提醒:可修改儿女码再运行!

结果如图:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读