高德地图定位误差_高德地图定位api以及导航和定位 位置的偏差
map = new AMap.Map('container', {
resizeEnable: true
});
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true,//是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
buttonPosition:'RB'
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息
});
//解析定位结果
function onComplete(data) {
var EndLatitude = document.getElementById("EndLatitude").value;
var EndLongitude = document.getElementById("EndLongitude").value;
var str=['定位成功'];
str.push('经度:' + data.position.getLng());
str.push('纬度:' + data.position.getLat());
var gpsPoint = GPS.gcj_encrypt(data.position.getLat(), data.position.getLng());
lng= gpsPoint.lon;
lat= gpsPoint.lat;
if(data.accuracy){
str.push('精度:' + data.accuracy + ' 米');
}//如为IP精确定位结果则没有精度信息
str.push('是否经过偏移:' + (data.isConverted ? '是' : '否'));
//var a = "http://api.map.baidu.com/direction?origin=latlng:" + position.coords.latitude + "," + position.coords.longitude + "|name:我的位置&destination=latlng:" + EndLatitude + "," + EndLongitude + "|name:目的地&mode=driving®ion=成都&output=html&src=scnjw";
//var a = "http://api.map.baidu.com/direction?origin=latlng:31.64380,105.00065|name:去嘛&destination=latlng:30.64380,104.00065|name:来嘛&mode=driving®ion=成都&output=html&src=scnjw";
// var a = "http://uri.amap.com/navigation?from=" + position.coords.longitude + "," + position.coords.latitude + ",我的位置&to=" + EndLongitude + "," + EndLatitude + ",目的地&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0";
var a = "http://uri.amap.com/navigation?from=" +lng+","+lat + ",我的位置&to=" + EndLongitude + "," + EndLatitude + ",目的地&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=0";
top.location = a;
}
//解析定位错误信息
function onError(data) {
document.getElementById('tip').innerHTML = '定位失败';
}
var GPS = {
PI: 3.14159265358979324,
x_pi: 3.14159265358979324 * 3000.0 / 180.0,
delta: function (lat, lon) {
var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
var ee = 0.00669342162296594323; // ee: 椭球的偏心率。
var dLat = this.transformLat(lon - 105.0, lat - 35.0);
var dLon = this.transformLon(lon - 105.0, lat - 35.0);
var radLat = lat / 180.0 * this.PI;
var magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
var sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * this.PI);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * this.PI);
return {
'lat': dLat,
'lon': dLon
};
},
//WGS-84 to GCJ-02
gcj_encrypt: function (wgsLat, wgsLon) {
if (this.outOfChina(wgsLat, wgsLon))
return {
'lat': wgsLat,
'lon': wgsLon
};
var d = this.delta(wgsLat, wgsLon);
return {
'lat': wgsLat + d.lat,
'lon': wgsLon + d.lon
};
},
outOfChina: function (lat, lon) {
if (lon < 72.004 || lon > 137.8347)
return true;
if (lat < 0.8293 || lat > 55.8271)
return true;
return false;
},
transformLat: function (x, y) {
var 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 * this.PI) + 20.0 * Math.sin(2.0 * x * this.PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(y * this.PI) + 40.0 * Math.sin(y / 3.0 * this.PI)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(y / 12.0 * this.PI) + 320 * Math.sin(y * this.PI / 30.0)) * 2.0 / 3.0;
return ret;
},
transformLon: function (x, y) {
var 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 * this.PI) + 20.0 * Math.sin(2.0 * x * this.PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(x * this.PI) + 40.0 * Math.sin(x / 3.0 * this.PI)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(x / 12.0 * this.PI) + 300.0 * Math.sin(x / 30.0 * this.PI)) * 2.0 / 3.0;
return ret;
}
};
位置偏差 转换
var result = gcoord.transform(
[104.059303, 30.542873], // 经纬度坐标
gcoord.WGS84, // 当前坐标系
gcoord.GCJ02 // 目标坐标系
);
console.log( result );
gcoord官网
https://github.com/hujiulong/gcoord
高德地图定位误差_高德地图定位api以及导航和定位 位置的偏差相关推荐
- 高德h5定位误差_#高德地图api移动端定位失败解决方案 #H5 原生Geollocation接口Chomre浏览器的坑...
侧重:本文探索了 http 协议下,pc + 移动端定位解决方案 IOS版本: ios14 原生Geolocation 接口: Document Show my location function g ...
- 高德h5定位误差_高德地图定位JS API不准确问题
到网上找了个解决高德偏移量的代码 https://blog.csdn.net/woshimu... 我的是ip定位 转换过的定位就准确了 this.map.plugin('AMap.Geolocati ...
- 高德地图去掉定位按钮_高德地图自定义定位按钮及点击事件
最近使用了一下高德地图,使用期间将出现的问题记录一下.文中出现不对的地方,悉听各路大神指正.2018年11月23日15:59:46 1.首先我们初始化map控制对象aMap .if (aMap ==n ...
- 高德地图定位失败_高德开放平台
JS-API的Geolocation定位插件,融合了HTML5 Geolocation定位接口.精确IP定位服务,以及安卓定位sdk定位.其中与安卓定位sdk的结合使用适用于开发安卓系统的H5应用,需 ...
- ios 高德挪动地图获取经纬度_高德地图获取地理位置经纬度并将经维度转化为详细地址信息...
浏览器定位 经纬度 116.396574, 39.992706 的地理编码结果: /*************************************** 由于Chrome.IOS10等已不再 ...
- 高德地图 街道范围_高德地图推出货车导航,解决3000万货车司机出行痛点
[猎云网(微信:ilieyun)北京]12月6日报道 高德地图今日推出全新的货车导航功能,易行平台出行方式及范围再次升级.这也是高德地图继推出无障碍地图之后,再一次面向特殊需求群体推出的新功能.货车导 ...
- android高德地图获取海拔_高德地图如何查经纬度和海拔
展开全部 高德地图测海拔的具体方法如下: 1.第一步打636f70793231313335323631343130323136353331333366306564开高德地图的网页,找到并点击下方那行小 ...
- wms地图绘制工具_移情地图,了解用户需求的利器
如果你想打造一款成功的产品,对你的用户有一个良好的了解是至关重要的.虽然用户体验设计师有许多技能可以帮助他们发展这种理解,但有一种关键技能有很多优势,它称为移情地图. User-Experience ...
- 百度地图 绘制运动轨迹_百度地图创新破局:声音个性表达、出行精准预估与全球无碍...
12月20日-22日,在"极客公园创新大会十周年GeekPark IFX"未来趋势论坛上,百度地图事业部总经理李莹发表了题为<AI时代,地图的破局与思考>主题演讲,分享 ...
- 地图样式自定义_用地图做数据分析,地图可视化更显高级
地图看成是"反映自然和社会现象的形象.符号模型",是"空间信息的载体"."空间信息的传递通道"等.随着时代的变迁.思维的改变.科技的发展,地 ...
最新文章
- 小程序的ui应该怎么设计?
- RedLock: 看完这篇文章后请不要有任何疑惑了
- php 验证码 扩展,使用 Captcha 扩展包 为 Laravel 5 应用生成验证码
- python输入完怎么运行-教你如何编写、保存与运行Python程序的方法
- 【Flutter】Dart 面向对象 ( 抽象类 | 抽象方法 )
- Python 编码风格参考
- 为此计算机所有用户安装加载项,安装Office 2013后,无法在计算机上安装Outlook加载项...
- 常染色体的隐性疾病数学建模(代数模型)
- mysql collate
- 【文末福利】算法大赛评委共话技术趋势,这场直播值得一看!
- windows安装多个jdk版本的切换问题
- LeetCode(617)——合并二叉树(JavaScript)
- Android数据存储——内部存储
- MCE公司:新型 RORγt 小分子反向激动剂的发现
- ui设计师必须了解的13中移动app界面设计的基础知识
- Optimized Cost per Click in Taobao Display Advertising - 淘宝 OCPC 阅读笔记
- unzip解压部分代码
- 图标字体的优缺点和使用
- 在日本转职需要到入管办理转职手续
- pytorch学习--UNet模型