经纬度坐标转为上海地方坐标代码(js代码)
转 http://blog.sina.com.cn/s/blog_67fa5ecd0101aefi.html
// 经纬度坐标转换为上海地方坐标
function wgs84Tosh(lat,lon) {
var xx, yy, r2d, tolat, tolon, rearth, PI;
PI = 3.141592653589793;
r2d = 57.2957795131;
tolat = (31 + (14.0 + 7.55996 / 60.0) / 60.0) / r2d;
tolon = (121.0 + (28.0 + 1.80651 / 60.0) / 60) / r2d;
rearth = 6371006.84;
var hor, frlat, frlon, gcdist,clatf, clatt, slatf, slatt,gcbrg;
var dlon, cdlon, sdlon, sdist, cdist, sbrg, cbrg, temp;
var intlat, intlon;
intlat = lat;
intlon = lon;
frlat = lat / r2d;
frlon = lon / r2d;
clatt = Math.cos(frlat);
clatf = Math.cos(tolat);
slatt = Math.sin(frlat);
slatf = Math.sin(tolat);
dlon = frlon - tolon;
cdlon = Math.cos(dlon);
sdlon = Math.sin(dlon);
cdist = slatf * slatt + clatf * clatt * cdlon;
temp = (clatt * sdlon) * (clatt * sdlon) + (clatf * slatt - slatf * clatt * cdlon) * (clatf * slatt - slatf * clatt *cdlon);
sdist = Math.sqrt(Math.abs(temp));
if ((Math.abs(sdist) > 1e-7) || (Math.abs(cdist) > 1e-7))
gcdist = Math.atan2(sdist, cdist);
else
gcdist = 0;
sbrg = sdlon * clatt;
cbrg = (clatf * slatt - slatf * clatt * cdlon);
if ((Math.abs(sbrg) > 1e-7) || (Math.abs(cbrg) > 1e-7)) {
temp = Math.atan2(sbrg, cbrg);
while (temp < 0) {
temp = temp + 2 * PI;
gcbrg=temp;
}
} else
gcbrg = 0;
hor = gcdist * rearth;
xx = hor * Math.sin(temp);
yy = hor * Math.cos(temp);
return [xx,yy];
}
c#
class CWgs84Tosh
{
// 经纬度坐标转换为上海地方坐标
public double[] wgs84Tosh(double lat, double lon)
{
double xx, yy, r2d, tolat, tolon, rearth, PI;
PI = 3.141592653589793;
r2d = 57.2957795131;
tolat = (31 + (14.0 + 7.55996 / 60.0) / 60.0) / r2d;
tolon = (121.0 + (28.0 + 1.80651 / 60.0) / 60) / r2d;
rearth = 6371006.84;
double hor, frlat, frlon, gcdist, clatf, clatt, slatf, slatt, gcbrg;
double dlon, cdlon, sdlon, sdist, cdist, sbrg, cbrg, temp;
double intlat, intlon;
intlat = lat;
intlon = lon;
frlat = lat / r2d;
frlon = lon / r2d;
clatt = Math.Cos(frlat);
clatf = Math.Cos(tolat);
slatt = Math.Sin(frlat);
slatf = Math.Sin(tolat);
dlon = frlon - tolon;
cdlon = Math.Cos(dlon);
sdlon = Math.Sin(dlon);
cdist = slatf * slatt + clatf * clatt * cdlon;
temp = (clatt * sdlon) * (clatt * sdlon) + (clatf * slatt - slatf * clatt * cdlon) * (clatf * slatt - slatf * clatt * cdlon);
sdist = Math.Sqrt(Math.Abs(temp));
if ((Math.Abs(sdist) > 1e-7) || (Math.Abs(cdist) > 1e-7))
gcdist = Math.Atan2(sdist, cdist);
else
gcdist = 0;
sbrg = sdlon * clatt;
cbrg = (clatf * slatt - slatf * clatt * cdlon);
if ((Math.Abs(sbrg) > 1e-7) || (Math.Abs(cbrg) > 1e-7))
{
temp = Math.Atan2(sbrg, cbrg);
while (temp < 0)
{
temp = temp + 2 * PI;
gcbrg = temp;
}
}
else
gcbrg = 0;
hor = gcdist * rearth;
xx = hor * Math.Sin(temp);
yy = hor * Math.Cos(temp);
double[] res = new double[2];
res[0] = xx;
res[1] = yy;
return res;
}
}
经纬度坐标转为上海地方坐标代码(js代码)相关推荐
- html百度页面js代码,js代码让网页自动提交到百度
网站提交到百度的方法目前来说有三种,第一个主动推动(实时):第二个:自动推送:第三个:sitemap: 第一个主动推动我们之前的文章已经说过了,根据百度提供的参数,wordpress用户直接下载插件包 ...
- js怎么使用php代码,js代码怎么用
在学习JavaScript之前我们应该先来了解一下JavaScript代码如何使用?下面我们就来看看js代码的用法. 我们在使用JavaScript代码有两种写法:一种是在HTML页面中直接嵌入js代 ...
- php分号的代码,JS 代码要不要加分号?
JavaScript 中分号划分了社区.有些人无论如何都喜欢使用分号.其他人喜欢不加分号. 在使用分号多年之后,2017 年秋,我决定尝试根据需要不加分号,并且设置 Prettier 自动移除我代码中 ...
- 武汉市下吴地形图国家2000地方坐标转WGS84案例
概述 水经注软件除了可以对百度坐标与火星坐标进行纠偏和切片,下载陆地及海洋高程.提取10米等高线等深线.CASS高程点,下载含高度的全国矢量建筑.全国乡镇及街区行政区划.地名点.高速铁路网.公交路线. ...
- gps wgs84坐标与高德gcj02坐标互转
vue中 wgs84坐标转为高德gcj02坐标,详见高德官方文档:其他坐标转高德坐标-坐标变换-教程-地图 JS API | 高德地图API //设置gps wgs84坐标转为高德gcj02conve ...
- 在谷歌浏览器中如何查看js代码在终端的运行结果、如何查看请求头信息
在谷歌浏览器中如何查看js代码在终端的运行结果.如何查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 2 查看请求头信息 1 如何查看js代码在终端的运行结果(如何打开终端) 方法 ...
- ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员
ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员 目录 实验数据 设计思路 实现代码(部分代码) 实验数据 设计思路 实现代码(部分代码) /**js代码实 ...
- android和js交互的代码,Android与JS代码交互
现如今,很多Android APP都要与JS进行交互,而WebView就是Android与JS交互的桥梁,日常中最常见Android和JS交互有:APP注册协议,APP里的文章,APP里的活动页,这都 ...
- WGS84经纬度坐标转北京54高斯投影地方坐标流程
坐标系统之间的坐标转换既包括不同的参心坐标之间的转换,或者不同的地心坐标系之间的转换,也包括参心坐标系与地心坐标系之间的转换以及相同坐标系的直角坐标与大地坐标之间的坐标转换,还有大地坐标与高斯平面坐标 ...
- java将投影坐标转为地理坐标_贡献高斯投影坐标与经纬度转换的java源码
下载了好几个源程序都不能用,在他们的基础上经过我与公式的核对.现在将代码改成了java 以下是完整代码:绝对能用,我现在的项目中就用的这个. package tms.base.systemlib; @ ...
最新文章
- HashMap的put和get操作
- 基于rancher在线安装k8s集群
- 十六、Javascript实现放大镜效果
- 公司技术部门内部的发展变化过程。
- C语言Node lt T gt,c语言论坛填空;#includelt;stdio.hgt;# 爱问知识人
- 网络规划设计师考试说明
- 2021年 RSA 大会:产品发布概览(第1天)
- 计算机科学素养大赛,第六届全国大学生计算机应用能力与信息素养大赛圆满结束...
- Unix/Linux环境C编程新手教程(40) 初识文件操作
- json转换为对象 java对象数组对象_将json数组转换为java列表对象
- 基于linux环境tcp网络编程(在线英英词典)文档【3】
- Android平台语音交友软件源码开发,语音通话的实现
- 人机关系:基于中国文化的机体哲学分析
- 吐血实践-TiDB离线安装
- 负载均衡集群技术介绍
- 工业级路由器和家用路由器的区别_工业级路由器和家用路由器有何区别?
- Windows修改注册表实现开机自启动
- 京东物流一体化供应链建设实践
- 记录一下使用微信小程序wx-open-launch-weapp组件
- 威马D轮敲定,「造车新势力」四小龙已定