引言
在地图的开发中,会涉及到各种的数学计算,比如距离、角度计算等,经纬度坐标系的情况下,地图使用的坐标是经纬度的形式,单位是度,而计算距离的时候,结果是米制单位,这就需要其中有一个转换,或者存在对应的计算公式,本文对web mercator坐标系的地图中数学计算进行一个简单说明。

Mercator坐标系(EPSG:3857)
坐标系的说明,参见以下网址:
http://epsg.io/3857
通过坐标系的说明,可以看到Mercator坐标系单位是米,投影坐标系范围是-20026376.39 -20048966.10;20026376.39 20048966.10,经纬度的范围是-180.0 -85.06;180.0 85.06。

基于Mercator坐标系的数学计算

高德、百度、openstreetmap这些常用的互联网地图,都是基于web Mercator的坐标系,在此坐标系的地图上,我们要做数学计算时,可以将使用的经纬度坐标,转成Mercator的投影坐标进行计算,以地图东西向为横轴、南北向为纵轴,建立坐标系进行计算。
经纬度和Mercator互转网上有开源库:
https://github.com/CAfor2015/WGS84_WebMercator
简单的数学计算方式例子:

-坐标点的x、y方向移动N米:将坐标转换之后,加减对应的米数,在转换成经纬度坐标标绘点;

-地图上N米半径画圆:设定圆上点数,按照三角函数sin、cos相乘半径,计算x、y方向移动的距离,连成面状图层;

-地图上点到直线的最近距离:点连接线的起点成直线,和已知直线计算夹角,根据点到起点的距离,计算点到直接的最近距离;

…其他的可参见数学函数的方式计算

转换Mercator的投影坐标,变换可计算的坐标系值,就能很方便的进行计算了。
对于cgcs2000和球面的经纬度数学计算,以后有时间进行分享。

GIS开发:地图中的数学计算(Mercator)相关推荐

  1. R开发(part2)--R语言中的数学计算

    学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 文章目录 R开发 R语言中的数学计算 对数 加权平均.连乘.差分.秩.任意数.全体数 阶乘.组合.排列 累加.累乘.最小累 ...

  2. R语言中的数学计算(转载)

    R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...

  3. Shell脚本笔记(三)shell中的数学计算

    shell中的数学计算 一.使用方括号 #!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res 二.使用(()) echo $((1+9)) ( ...

  4. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  5. shell中的数学计算

    shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵.    1.错误方法举例    a)    var=1+1    echo $ ...

  6. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  7. C++ 中的数学计算函数

    这是我从网上搜集来的,值得看看. 1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int m ...

  8. ArcEngine C# GIS开发入门作业 (三)Ex04——实现地图的简单渲染和唯一值渲染

    文章评论 写评论 sinat_37432938: 可以说非常有参考的意义,谢谢分享 4周前 #2楼 举报回复查看回复(1) domen_dragon 回复 sinat_37432938: 哈哈,谢谢夸 ...

  9. 在百度地图中叠加CAD图及GIS数据展示踩坑记

    前言 在之前的几篇博客中分别介绍了 在Cesium中实现与CAD的DWG图叠加显示分析 https://www.cnblogs.com/vjmap/p/16541751.html . 高德地图与CAD ...

最新文章

  1. cocos 射线检测 3D物体 (Sprite3D点击)
  2. 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
  3. accp8.0转换教材第11章Ajax交互扩展理解与练习
  4. jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
  5. ECMAScript5 严格模式,JSON,及其它
  6. c语言连接mysql_聊聊数据库MySQL、SqlServer、Oracle的区别,哪个更适合你?
  7. STM32----摸石头过河系列(六)
  8. 【python教程入门学习】迭代器、生成器和可迭代对象
  9. OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
  10. 【备忘】高斯判别分析(GDA)参数手推记录
  11. excel2016 android,Microsoft Excel
  12. 【android】安卓高仿京东分类页
  13. uni-app学习路线与建议
  14. (译)Xposed模块开发教程
  15. 学生管理系统--【Java+MySQL】--数据库系统概论综合性实验
  16. 免费把你的 GoogleDrive 和 OneDrive 变成 CDN
  17. UGUI源码解析(二十二)ContentSizeFitter
  18. 医学研究人员为什么要学习R语言?哪本书最适合学习?
  19. web前端基础教学视频分享(一)html+css+js基础教学(附淘宝网站开发教程)
  20. 自学K60时的部分小结

热门文章

  1. android 音乐app 保活,aggregationProject聚合项目
  2. DaVinci Resolve Studio 17中文语言设置教程
  3. springboot集成普罗米修斯
  4. leetcode1553. 吃掉 N 个橘子的最少天数(Python3、c++)
  5. python石头剪刀布代码带注释,游戏(石头剪刀布)
  6. 多媒体系统导论 实验一 基于Photoshop的图像处理
  7. 疫情之下移动办公成刚需,移动办公工具要“出圈”?
  8. 前端js多个小数相加出现无限循环小数的解决办法
  9. 安装Tensorflow1.14(cpu)+Kera2.2.5指南
  10. c java后端,【后端开辟】java与c言语的区分有哪些?