c语言谷歌坐标转百度坐标,关于GPS定位经纬度到谷歌(google)坐标以及百度(百度)坐标的转换c#源码...
关于GPS定位经纬度到谷歌(google)坐标以及百度(百度)坐标的转换c#源码
2020年08月10日
阅读数:31
这篇文章主要向大家介绍关于GPS定位经纬度到谷歌(google)坐标以及百度(百度)坐标的转换c#源码,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
using System;
namespace WindowsFormsApplication3
{
class EvilTransform
{
const double pi = 3.14159265358979324;
const double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
public struct BDcoor
{
public double bd_lon { get; set; }
public double bd_lat { get; set; }
}
public struct HDCoor
{
public double gg_lon { get; set; }
public double gg_lat { get; set; }
}
//
// Krasovsky 1940
//
// a = 6378245.0, 1/f = 298.3
// b = a * (1 - f)
// ee = (a^2 - b^2) / a^2;
const double a = 6378245.0;
const double ee = 0.00669342162296594323;
//
// World Geodetic System ==> Mars Geodetic System
public void transform(double wgLat, double wgLon, out double mgLat, out double mgLon)
{
if (outOfChina(wgLat, wgLon))
{
mgLat = wgLat;
mgLon = wgLon;
return;
}
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
double radLat = wgLat / 180.0 * pi;
double magic = Math.Sin(radLat);
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.Sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.Cos(radLat) * pi);
mgLat = wgLat + dLat;
mgLon = wgLon + dLon;
}
static bool outOfChina(double lat, double lon)
{
if (lon < 72.004 || lon > 137.8347)
return true;
if (lat < 0.8293 || lat > 55.8271)
return true;
return false;
}
static double transformLat(double x, double y)
{
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.Sqrt(Math.Abs(x));
ret += (20.0 * Math.Sin(6.0 * x * pi) + 20.0 * Math.Sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.Sin(y * pi) + 40.0 * Math.Sin(y / 3.0 * pi)) * 2.0 / 3.0;
ret += (160.0 * Math.Sin(y / 12.0 * pi) + 320 * Math.Sin(y * pi / 30.0)) * 2.0 / 3.0;
return ret;
}
static double transformLon(double x, double y)
{
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.Sqrt(Math.Abs(x));
ret += (20.0 * Math.Sin(6.0 * x * pi) + 20.0 * Math.Sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.Sin(x * pi) + 40.0 * Math.Sin(x / 3.0 * pi)) * 2.0 / 3.0;
ret += (150.0 * Math.Sin(x / 12.0 * pi) + 300.0 * Math.Sin(x / 30.0 * pi)) * 2.0 / 3.0;
return ret;
}
///
///
///
///
///
///
public BDcoor bd_encrypt(double gg_lat, double gg_lon)
{
double x = gg_lon, y = gg_lat;
double z = Math.Sqrt(x * x + y * y) + 0.00002 * Math.Sin(y * x_pi);
double theta = Math.Atan2(y, x) + 0.000003 * Math.Cos(x * x_pi);
BDcoor bd = new BDcoor();
bd.bd_lon = z * Math.Cos(theta) + 0.0065;
bd.bd_lat = z * Math.Sin(theta) + 0.006;
return bd;
}
///
///
///
///
///
///
public HDCoor bd_decrypt(double bd_lat, double bd_lon)
{
double x = bd_lon - 0.0065, y = bd_lat - 0.006;
double z = Math.Sqrt(x * x + y * y) - 0.00002 * Math.Sin(y * x_pi);
double theta = Math.Atan2(y, x) - 0.000003 * Math.Cos(x * x_pi);
HDCoor hd = new HDCoor();
hd.gg_lon = z * Math.Cos(theta);
hd.gg_lat = z * Math.Sin(theta);
return hd;
}
}
}
c语言谷歌坐标转百度坐标,关于GPS定位经纬度到谷歌(google)坐标以及百度(百度)坐标的转换c#源码...相关推荐
- js百度地图获取当前定位经纬度及省市区
首先需要引入百度地图api 和jq <script type="text/javascript" src="https://api.map.baidu.com/ap ...
- 通达信指标能用c语言编写吗_翔博精选指标看长做短,引用周线数据(通达信公式 副图 源码 测试图)...
问题:怎样才能每天都收到这类文章! 答案:只需点击上方<翔博软件工作室> 做价值的传播者,一路同行,一起成长 免费指标和实战干货持续更新中,欢迎关注 点赞 收藏视频号. 公式源码 看长,故 ...
- 感应门铃的c语言程序,基于STM32单片机智能门禁门铃热释人体感应光照报警+RFID门禁电磁锁设计-(原理图+程序源码)...
视频:https://v.youku.com/v_show/id_XNDc2NDMwNDQzMg==.html?spm=a2hzp.8253869.0.0 2018-644.STM32成品+RFID设 ...
- Android百度地图之位置定位和附近查找代码简单实现 (上)
很长时间没有做Android相关知识了,闲暇之余再弄了弄最新的百度地图API,主要是进行百度地图附近餐馆查找功能来练练手,同时熟悉下最新的API教程.文章比较基础,也希望对你有所帮助~参考前文: ...
- html5 geolocation 百度地图,html5 geolocation配合百度地图api实现定位
1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用 ...
- python百度云盘搜索引擎_2016百度云网盘搜索引擎源码,附带Python爬虫+PHP网站+Xunsearch搜索引擎...
品牌: 其他 语言: PHP 数据库: Mysql 源文件: 完全开源(含全部源文件) 授权: 免授权 规格: 整站源码 移动端: 无移动端 安装服务: 收费安装(另补差价) 操作系统: Window ...
- 搜索巨头转身:Google向左、百度向右
谷歌日前宣布了一个重大事项:未来将以Alphabet(字母表)的品牌亮相,谷歌将成为这家新的控股公司的全资子公司,与Google并列的还有健康.投资.Google X.Nest诸多新兴业务.虽然本质只 ...
- 百度小程序源码php_dedecms织梦小程序插件万能api接口插件(支持百度微信小程序)...
dedecms织梦小程序插件万能api接口,让你无需有php或sql基础,不需要依赖任何第三方网站授权,后台一键安装,小程序分分钟配置完成,让你拥有真正属于自己的小程序!支持gbk和utf版 dede ...
- 第三方 搜索 聚合 百度 php,百度小偷-搜索引擎聚合源码-寄生虫源码
百度搜索引擎聚合源码 百度小偷 本程序为单页PHP源码新版 带伪静态规则 开源无加密.便于修改二次开发 200KB左右,短小精悍,自适应PC wap 平板 全自动式搜索引擎聚合源码 ...
最新文章
- Spark Streaming 编程新手入门指南
- 为什么PUE只说明了数据中心能效的一部分?
- SDNU 1300.转圈游戏(快速幂)
- c# Invoke和BeginInvoke 区别
- BeetleX轻松搭建HTTP和Weboskcet网关
- java 上传远程图片,java上传图片到另一台服务器上,怎么解决
- jsk Star War (线段树维护区间最小最大值 + 二分)
- leetcode1083. 销售分析 II(SQL)
- Python使用socket读取网页源代码实现简单爬虫程序
- 1061. 判断题(15)-PAT乙级真题
- 第四章Python数值计算工具 ——Numpy
- jQuery 的 ajax
- 隐藏你不想要的:Bartender 4 for Mac菜单栏应用管理软件
- java的睡眠方式有几种_java的几种定时任务
- 移动位置应用的推动者——ArcGIS移动产品家族
- 正确编译差分包签名(MTK系统)
- 二十余岁时的社会观(一)
- 单U盘 clonezilla 克隆ubuntu16.04系统
- 糖友日常生活需要注意什么
- hive数仓、数据中台数据核对的方法