GPS坐标转化

//将GPS纬度信息转换为“火星坐标”的纬度
function latToGcj02(lon, lat) {
    var c = Math.PI,
        d = Math.sin,
        e = -100 + 2 * lon + 3 * lat + 0.2 * lat * lat + 0.1 * lon * lat + 0.2 * Math.sqrt(Math.abs(lon)),
        e = e + 2 * (20 * d(6 * lon * c) + 20 * d(2 * lon * c)) / 3,
        e = e + 2 * (20 * d(lat * c) + 40 * d(lat / 3 * c)) / 3;
    return e += 2 * (160 * d(lat / 12 * c) + 320 * d(lat * c / 30)) / 3
}

//将GPS经度信息转换为“火星坐标”的纬度
function lonToGcj02(lon, lat) {
    var c = Math.PI,
        d = Math.sin,
        e = 300 + lon + 2 * lat + 0.1 * lon * lon + 0.1 * lon * lat + 0.1 * Math.sqrt(Math.abs(lon)),
        e = e + 2 * (20 * d(6 * lon * c) + 20 * d(2 * lon * c)) / 3,
        e = e + 2 * (20 * d(lon * c) + 40 * d(lon / 3 * c)) / 3;
    return e += 2 * (150 * d(lon / 12 * c) +
        300 * d(lon / 30 * c)) / 3
}

//将经纬度信息转换为“火星坐标”体系
function GPSToGcj02(lon, lat) {
    var a = 6378245,
        ee = 0.006693421622965823;

    var d = Math.PI,
        e = lonToGcj02(lon - 105, lat - 35),
        f = latToGcj02(lon - 105, lat - 35),
        h = lat / 180 * d,
        k = Math.sin(h),
        k = 1 - ee * k * k,
        l = Math.sqrt(k),
        e = 180 * e / (a / l * Math.cos(h) * d),
        f = 180 * f / (a * (1 - ee) / (k * l) * d);
    return [lon + e, lat + f]
}

//例子
navigator.geolocation.getCurrentPosition(function(e) {
    console.log(GPSToGcj02(e.coords.longitude, e.coords.latitude));
}, function() {

}, {
    enableHighAccuracy: true,
    timeout : 10000
});
时间: 2024-10-14 22:03:34

GPS坐标转化的相关文章

GPS坐标转化为百度坐标

============问题描述============ 想把手机采集的GPS坐标转化为百度坐标,在网上找了一下代码: GeoPoint geoPoint3 = new GeoPoint((int) ((mLat1 + 0.001) * 1E6), (int) ((mLon1 + 0.003) * 1E6)); GeoPoint GeoPointBaidu = CoordinateConvert.fromWgs84ToBaidu(geoPoint3);  mOverlayList.add(new

C#后台 GPS坐标转化成百度坐标

protected void Page_Load(object sender, EventArgs e) { //获取当前纬度 string Latitude = "117.707677"; //获取当前经度 string Longitude = "39.084097"; //百度坐标转换API string path = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=&q

GPS坐标换算为百度坐标

最近在做一个关于手机定位的小应用,需求是这样的,用户通过手机(Wp8)进行二维码扫描操作并且记录用户的当前位置,在PC上可以查看用户所在地图的位置,做法就是在用户扫描条码时,通过手机GPS获取当前在地图上的位置(采用百度静态地图,根据坐标直接生成图片)并将图片保存到数据库,PC端直接从数据库中读取并展示图片.问题是:生成的图片所呈现的位置与实际位置偏差太大.于是我开始踏上了寻找解决办法的道路. 首先我检测我的硬件设备是否定位准确,我用WP8手机内置的地图进行了当前位置定位,结果没有问题,说明我的

GPS坐标与百度坐标转换

百度对外接口的坐标系,都是经过国家测绘局加密处理,符合国家测绘局对地理信息保密要求. 国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ- 02,对地理位置进行首次加密.百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私.百度对外接口的坐标系并不是GPS采集的真实经 纬度,需要通过坐标转换接口进行转换. 百度地图坐标转换接口如下: BMap.Convertor.translate(gpsPoint,0,translateCallback);     //真实经

delphi 调用百度地图WEBSERVICE转换GPS坐标

百度地图的API说明 使用方法 第一步,申请密钥(ak),作为访问服务的依据: 第二步,按照请求参数说明拼写发送http请求的url,注意需使用第一步申请的ak: 第三步,接收返回的数据(json或者xml格式). 注:本接口支持回调. 服务地址 http://api.map.baidu.com/geoconv/v1/? 组成说明: 域名:http://api.map.baidu.com 服务名:geoconv 服务版本号:v1 服务参数说明 参数 含义 取值范围 是否必须 默认取值 coord

API地图坐标转化(批量转换坐标)

```html 批量转换坐标(据说有50次/秒的限制哦) 谷歌地图 鼠标点击的谷歌坐标是: 百度地图 鼠标点击的百度坐标是:() ``` ```javascript // (function(){ function loadscript(xyUrl, callback){ var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type =

ios根据gps坐标来计算两点间的距离

//ios根据gps坐标来计算两点间的距离 //x1,y1 点1的坐标 x2,y2点2的坐标 -(double) gps2m:(double)x1 _y1:(double)y1 _x2:(double)x2 _y2:(double)y2{ double radLat1 = (x1 * 3.1416 / 180.0); double radLat2 = (x2 * 3.1416 / 180.0); double a = radLat1 - radLat2; double b = (y1 - y2)

地图坐标转换 -- 火星坐标与GPS坐标

第一次处理地理位置的数据的人,没什么经验,往往掉入很多坑浪费不少时间.我也是刚刚从坑里爬出来.这篇博文主要是把入门GPS轨迹分析的经验总结一下,以方便大家少走些弯路. (1)可视化 GPS 路径 刚拿到一堆GPS轨迹数据,想看看它长什么样?于是先想办法把它们可视化出来.有很多地图的API可以用,如果不是想搞演示,只是为了快速随便看一眼的话,推荐用百度的在线示例API  http://developer.baidu.com/map/jsdemo.htm#c1_3  里面有比较详细的例子,很丰富的操

计算两个GPS坐标点的距离

计算两个GPS坐标点的距离,第一个参数是第一个点的维度,第二个参数是第一个点的经度 http://yuninglovekefan.blog.sohu.com/235655696.html /** * */ package utils; /** * 坐标计算的工具类 * * @author ywf * */ public class PositionUtils { private static final double EARTH_RADIUS = 6371.004; static double