GIS开发:地图中的数学计算(Mercator)
引言
在地图的开发中,会涉及到各种的数学计算,比如距离、角度计算等,经纬度坐标系的情况下,地图使用的坐标是经纬度的形式,单位是度,而计算距离的时候,结果是米制单位,这就需要其中有一个转换,或者存在对应的计算公式,本文对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)相关推荐
- R开发(part2)--R语言中的数学计算
学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 文章目录 R开发 R语言中的数学计算 对数 加权平均.连乘.差分.秩.任意数.全体数 阶乘.组合.排列 累加.累乘.最小累 ...
- R语言中的数学计算(转载)
R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...
- Shell脚本笔记(三)shell中的数学计算
shell中的数学计算 一.使用方括号 #!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res 二.使用(()) echo $((1+9)) ( ...
- 用计算机怎么计算r角度,R语言中的数学计算
原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...
- shell中的数学计算
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵. 1.错误方法举例 a) var=1+1 echo $ ...
- math java 计算_Java中的数学计算函数汇总
Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...
- C++ 中的数学计算函数
这是我从网上搜集来的,值得看看. 1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int m ...
- ArcEngine C# GIS开发入门作业 (三)Ex04——实现地图的简单渲染和唯一值渲染
文章评论 写评论 sinat_37432938: 可以说非常有参考的意义,谢谢分享 4周前 #2楼 举报回复查看回复(1) domen_dragon 回复 sinat_37432938: 哈哈,谢谢夸 ...
- 在百度地图中叠加CAD图及GIS数据展示踩坑记
前言 在之前的几篇博客中分别介绍了 在Cesium中实现与CAD的DWG图叠加显示分析 https://www.cnblogs.com/vjmap/p/16541751.html . 高德地图与CAD ...
最新文章
- cocos 射线检测 3D物体 (Sprite3D点击)
- 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
- accp8.0转换教材第11章Ajax交互扩展理解与练习
- jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
- ECMAScript5 严格模式,JSON,及其它
- c语言连接mysql_聊聊数据库MySQL、SqlServer、Oracle的区别,哪个更适合你?
- STM32----摸石头过河系列(六)
- 【python教程入门学习】迭代器、生成器和可迭代对象
- OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
- 【备忘】高斯判别分析(GDA)参数手推记录
- excel2016 android,Microsoft Excel
- 【android】安卓高仿京东分类页
- uni-app学习路线与建议
- (译)Xposed模块开发教程
- 学生管理系统--【Java+MySQL】--数据库系统概论综合性实验
- 免费把你的 GoogleDrive 和 OneDrive 变成 CDN
- UGUI源码解析(二十二)ContentSizeFitter
- 医学研究人员为什么要学习R语言?哪本书最适合学习?
- web前端基础教学视频分享(一)html+css+js基础教学(附淘宝网站开发教程)
- 自学K60时的部分小结
热门文章
- android 音乐app 保活,aggregationProject聚合项目
- DaVinci Resolve Studio 17中文语言设置教程
- springboot集成普罗米修斯
- leetcode1553. 吃掉 N 个橘子的最少天数(Python3、c++)
- python石头剪刀布代码带注释,游戏(石头剪刀布)
- 多媒体系统导论 实验一 基于Photoshop的图像处理
- 疫情之下移动办公成刚需,移动办公工具要“出圈”?
- 前端js多个小数相加出现无限循环小数的解决办法
- 安装Tensorflow1.14(cpu)+Kera2.2.5指南
- c java后端,【后端开辟】java与c言语的区分有哪些?