C语言实现EPSG:4326和EPSG:3857的互转
EPSG:4326是我们熟悉的WGS84,EPSG:3857又称EPSG:900913,是Pseudo-Mercator,互联网地图一般都采用EPSG:3857
参考GitHub项目Gcoord:https://github.com/hujiulong/gcoord
#include<stdio.h>
#include<math.h>
#define PI 3.1415926535897932
double D2R = PI / 180;
double R2D = 180 / PI;
double A = 6378137;
void ESPG3857_To_ESPG4326(double x, double y, double *lon, double *lat){*lon = x * R2D / A;*lat = (PI * 0.5 - 2.0 * atan(exp(-y / A))) * R2D;
}
void ESPG4326_To_ESPG3857(double lon, double lat, double *x, double *y){double adjusted = abs(lon) <= 180 ? lon : lon - (lon < 0 ? -1 : 1) *360;*x = A * adjusted * D2R;*y = A * log(tan(PI * 0.25 + 0.5 * lat * D2R));
}
int main(){double x, y, lon, lat;lon = 121.98625416795976;lat = 39.153783297406605;ESPG4326_To_ESPG3857(lon, lat, &x, &y);printf("%.14lf %.14lf\n", x, y);getchar();
}
C语言实现EPSG:4326和EPSG:3857的互转相关推荐
- GIS坐标系转换(EPSG:4326与EPSG:3857相互转换)
EPSG:4326(WGS84) WGS84 是目前最流行的地理坐标系统.在国际上,每个坐标系统都会被分配一个 EPSG 代码,EPSG:4326 就是 WGS84 的代码.GPS是基于WGS84的, ...
- GIS基础(坐标系、投影的不同表示方法:)EPSG:4326、EPSG:3857
坐标系 通过椭球体这样的几何模型,定义坐标系来进行描述位置,测量距离等操作,使用相同的坐标系,可以保证同样坐标下的位置是相同的,同样的测量得到的结果也是相同的.通常有两种坐标系 地理坐标系(geogr ...
- openlayers6【十】EPSG:3857和EPSG:4326区别详解
文章目录 1. 写在前面 2. 什么是EPSG:3857坐标系(投影坐标) 3. 什么是EPSG:4326 坐标系(地理坐标) 4. EPSG:4326和EPSG:3857区别(重点) 1. 写在前面 ...
- 关于不同坐标地之前的转化(地球坐标系,经纬度坐标系,火星坐标系,EPSG:4326,WGS84,EPSG:3857)
EPSG:3857转换经纬度(EPSG:4326) // javascript 转换 function mercatorTolonlat(mercator){var lonlat={x:0,y:0}; ...
- openlayers中‘EPSG:3857‘与 ‘EPSG:4326‘互转
1.将坐标从'EPSG:3857'转换到'EPSG:4326' import {transform} from 'ol/proj'; var center = [11135835.4775655,34 ...
- 使用openlayers中的ol.proj类实现EPSG:3857和EPSG:4326坐标数据相互转换
1. 数据形式 cesium开发过程中需要处理接口中的4326和3857坐标系相互转换的问题 4326为地理坐标系 3857为投影坐标系 数据格式如下: [15748903.882937903, 49 ...
- OpenLayers5在EPSG:4326投影坐标系下测量长度和面积
ol/sphere里有getLength()和getArea()可以用来测量距离和区域面积,默认的投影坐标系是EPSG:3857, 其中有个options的参数,可以设置投影坐标系.使用时, 可以先把 ...
- OpenLayers5在EPSG:4326下以m为单位画圆
var circleIn3857 = new Circle(transform([121.4659, 31.2], 'EPSG:4326', 'EPSG:3857'), 1000,'XY'); var ...
- 130:vue+openlayers 加载中国边界JSON数据(EPSG:4326)
第130个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中添加JSON数据,显示的是中国的边界线(EPSG:4326). 直接复制下面的 vue+openlayers源代 ...
- EPSG:4326坐标系和EPSG:900913坐标系
本文转载自:http://zhidao.baidu.com/question/297412286.html EPSG(The European Petroleum Survey Group, http ...
最新文章
- python 南京大学_南京大学python课程系列笔记之python基础之第一周:走进python
- [转载]静态构造函数
- 几种特征选择方法的比较,孰好孰坏?
- C#获得网络连接信息 IPGlobalProperties
- 【PAT乙级】1014 福尔摩斯的约会 (20 分)【模拟 / 很坑】
- 解决svn错误:post-commit hook failed (exit code 1) with output
- HDU 6185 2017广西邀请赛:Covering(矩阵快速幂)
- 网络_Wake-on-Lan(WoL)软件推荐, 让你不在局域网也能实现网络唤醒
- 在龙芯平台上编译jogamp(gluegen)
- 菜鸟学Linux 第041篇笔记 常见系统故障排除
- 计算机已将连接限制为某网络,提示此计算机当前已将连接限制为xxx的解决办法...
- MyEclipse2020中JSP文件光标乱跳
- python tkinter 按钮 Button增加图片
- 网易我的世界手机版服务器文件在哪个文件夹,网易我的世界手机版怎么导入地图...
- 一个C#写的爬虫程序
- BDD100K数据集简单解析以及格式转换成voc格式
- 王鸿飞原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-10000
- 虚拟机流量转到服务器,KVM虚拟机获得宿主机指定网卡的流量
- 2017网易有道校园招聘笔试题
- 完美国际单机修改服务器端,完美国际改国内版单机一键服务端