Google Maps、Virtual Earth等网络地理所使用的地图投影,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别就是把地球模拟为球体而非椭球体。建议先对地图投影知识做一个基本的了解,《 地图投影为什么》。
什么是墨卡托投影?
墨卡托(Mercator)投影,又名“等角正轴圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定,假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅标准纬线为零度(即赤道)的“墨卡托投影”绘制出的世界地图。从球到平面,有个转换公式,这里就不再罗列。
Google们为什么选择墨卡托投影?
墨卡托投影的“等角”特性,保证了对象的形状的不变行,正方形的物体投影后不会变为长方形。“等角”也保证了方向和相互位置的正确性,因此在航海和航空中常常应用,而Google们在计算人们查询地物的方向时不会出错。
墨卡托投影的“圆柱”特性,保证了南北(纬线)和东西(经线)都是平行直线,并且相互垂直。而且经线间隔是相同的,纬线间隔从标准纬线(此处是赤道,也可能是其他纬线)向两级逐渐增大。
但是,“等角”不可避免的带来的面积的巨大变形,特别是两极地区,明显的如格陵兰岛比实际面积扩大了N倍。不过要是去两极地区探险或科考的同志们,一般有更详细的资料,不会来查看网络地图的,这个不要紧。

为什么是圆形球体,而非椭球体?
这说来简单,仅仅是由于实现的方便,和计算上的简单,精度理论上差别0.33%之内,特别是比例尺越大,地物更详细的时候,差别基本可以忽略。
Web墨卡托投影坐标系:

  以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。

  X轴:由于赤道半径为6378137米,则赤道周长为2*PI*r = 40075016.0019724,因此X轴的取值范围:[-20037508.3427892,20037508.3427892]。

  Y轴:由墨卡托投影的公式可知,同时上图也有示意,当纬度φ接近两极,即90°时,y值趋向于无穷。这是那些"懒惰的工程师"就把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间,搞个正方形。

  懒人的好处,众所周知,事先切好静态图片,提高访问效率云云。俺只是告诉你为什么会是这样子。因此在投影坐标系(米)下的范围是:最小(-20037508.3427892, -20037508.3427892 )到最大 (20037508.3427892, 20037508.3427892)。

  对应的地理坐标系:

  按道理,先讲地理坐标系才是,比如球体还是椭球体是地理坐标系的事情,和墨卡托投影本关联不大。简单来说,投影坐标系(PROJCS)是平面坐标系,以米为单位;而地理坐标系(GEOGCS)是椭球面坐标系,以经纬度为单位。具体可参考《坐标系、坐标参照系、坐标变换、投影变换》。

经度:这边没问题,可取全球范围:[-180,180]。
纬度:上面已知,纬度不可能到达90°,懒人们为了正方形而取的-20037508.3427892,经过反计算,可得到纬度85.05112877980659。因此纬度取值范围是[-85.05112877980659,85.05112877980659]。其余的地区怎么办?没事,企鹅们不在乎。
因此,地理坐标系(经纬度)对应的范围是:最小(-180,-85.05112877980659),最大(180, 85.05112877980659)。至于其中的Datum、坐标转换等就不再多言。
如果想知道坐标怎么计算的,请看全解析第2季《 相关坐标计算》;更深入的和GIS相关的第3季《 WKT 形式表示》

墨卡托坐标转经纬度
//经纬度转墨卡托

 public Vector2D lonLat2Mercator(Vector2D lonLat){Vector2D mercator = new Vector2D();double x = lonLat.X * 20037508.34 / 180;double y = Math.Log(Math.Tan((90 + lonLat.Y) * Math.PI / 360)) / (Math.PI / 180);y = y * 20037508.34 / 180;mercator.X = x;mercator.Y = y;return mercator;}//墨卡托转经纬度public Vector2D Mercator2lonLat(Vector2D mercator){Vector2D lonLat = new Vector2D();double x = mercator.X / 20037508.34 * 180;double y = mercator.Y / 20037508.34 * 180;y = 180 / Math.PI * (2 * Math.Atan(Math.Exp(y * Math.PI / 180)) - Math.PI / 2);lonLat.X = x;lonLat.Y = y;return lonLat;}

本文转自:墨卡托坐标以及 墨卡托坐标转经纬度_flowerspring的博客-CSDN博客_墨卡托坐标

墨卡托坐标以及墨卡托坐标转经纬度相关推荐

  1. 墨卡托坐标以及 墨卡托坐标转经纬度

    Google Maps.Virtual Earth等网络地理所使用的地图投影,常被称作Web Mercator或Spherical Mercator,它与常规墨卡托投影的主要区别就是把地球模拟为球体而 ...

  2. PHP墨卡托坐标转经纬度,墨卡托坐标与经纬度相互转换的方法

    最近用到了墨卡托坐标转换经纬度的需求,原理什么的不想多说,需要的可以查看这里: 麦卡托投影法 Web Mercator 经纬度转Wev墨卡托 版本1 dvec3 CMathEngine::lonLat ...

  3. java 墨卡托 经纬度_Web墨卡托坐标与WGS84经纬度互转 java代码

    Web墨卡托坐标与WGS84经纬度互转 java代码 时间:5年前 浏览:2309 [网络转载] package com.util; public class Coordinate { static ...

  4. 火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版...

    转自:https://www.cnblogs.com/fwc1994/p/5884115.html 火星坐标.百度坐标.WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版 火星坐标 ...

  5. 【转】火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版...

    原文地址:https://www.cnblogs.com/fwc1994/p/5884115.html 火星坐标 火星坐标是国家测绘局为了国家安全在原始坐标的基础上进行偏移得到的坐标,基本国内的电子地 ...

  6. CAD 坐标转经纬度(Arcgis)

    CAD 坐标转经纬度(Arcgis) 1.CAD坐标识别 工具-坐标信息识别,手动复制输出到excel表,格式大致如下: 2.Arcgis 转换 文件-添加数据-添加XY数据,找到对应的excel表格 ...

  7. python实现2000投影坐标转经纬度

    引言 常用的WGS84投影坐标转经纬度可用通用的pyproj库来转换,而2000坐标 测试用这个库是没法转换的 而WGS84和其它坐标系(gcj02.bd09)之间的转换可以通过ChangeCoord ...

  8. 百度地图坐标转换为墨卡托坐标

    百度地图坐标转换为墨卡托坐标 转换思路 百度坐标系 (BD-09)首先转换为火星坐标系 (GCJ-02) ,根据gci坐标的经纬度再转成墨卡托坐标: 功能代码 /** * * 火星坐标系 (GCJ-0 ...

  9. 平面投影坐标转经纬度坐标

    平面投影坐标转经纬度坐标 本人在进行开发时,使用geotools的GeoTiffReader类读取卫星影像的顶点坐标,得到的是平面坐标,单位是米,打开arcGIS,加载影像,右下角会有坐标,在视图-& ...

最新文章

  1. 跨域资源共享 CORS
  2. Linux下的rsync远程增量备份详解
  3. 图文结合,白话Go的垃圾回收原理
  4. C#中DataRow的初始化
  5. error C2360: 参数初始化操作由“case”标签跳过
  6. 成功EDM电子邮件营销的要素和目标分析
  7. 百面机器学习—2. 特征工程与模型评估要点总结
  8. cartographer安装_【ROS-SLAM】Cartographer ROS官方文档翻译学习(1)——下载与安装...
  9. Java Web实战篇:增强for循环实现原理和for循环实战性能优化
  10. 40 多套 Java 完整实战项目,各个精品!
  11. linux查看nginx昅 电视,PHP实现查询汉字笔画、笔画排序、笔画统计
  12. 进程的守护神 - daemontools(进程监控)
  13. 手机投屏不是全屏怎么办_手机投屏怎么设置全屏
  14. 618的优惠券去哪了?
  15. 进字节跳动了,年薪30w+
  16. JetBrain系列好用的插件
  17. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
  18. python合并word表格单元格_合并Word 表格中单元格
  19. java的生活状态,生活状态 - Dorian's Blog - BlogJava
  20. 【服务器】vim使用

热门文章

  1. Spring Cloud Gateway 能代替zuul2吗
  2. python transpose函数_Numpy之np.transpose矩阵转置
  3. 交友项目【基础环境搭建】
  4. 通过TLINK物联网平台和迈思德网关DIY制作APP实现PLC远程无线监控
  5. SQL server数据库与My sql数据库的区别?
  6. Python 编写代码,定义一个求阶乘的函数fact(n),要求输入N, 返回 N! 的值
  7. 第七家面试(上海锦锭科技有限公司 )
  8. c语言当形参是const时,const形参和实参
  9. 你好,谈谈你对前端路由的理解
  10. 基于Qt的实时温度传输系统