首页 > 编程知识 正文

高德地经纬度怎么转换成gps,高德地经纬度转换成xy坐标

时间:2023-05-04 10:15:57 阅读:238574 作者:1474

高德开发平台 JS API 官网

自定义经纬度转换 // 要先在页面中引入 WGS84_to_GCJ02.js 才能使用 WGS84_to_GCJ02() 方法function GPSchange(lngX, latY) { var gpsJson = new WGS84_to_GCJ02().transform( parseFloat(lngX), parseFloat(latY) ); return gpsJson;} // WGS84_to_GCJ02.jsvar WGS84_to_GCJ02 = function() {}WGS84_to_GCJ02.prototype.a = 6378245.0;WGS84_to_GCJ02.prototype.ee = 0.00669342162296594323;WGS84_to_GCJ02.prototype.transform = function(wgLat, wgLon) { if (this.outOfChina(wgLat, wgLon)) { return [wgLat, wgLon]; } dLat = this.transformLat(wgLon - 105.0, wgLat - 35.0); dLon = this.transformLon(wgLon - 105.0, wgLat - 35.0); radLat = wgLat / 180.0 * Math.PI; magic = Math.sin(radLat); magic = 1 - this.ee * magic * magic; sqrtMagic = Math.sqrt(magic); dLat = (dLat * 180.0) / ((this.a * (1 - this.ee)) / (magic * sqrtMagic) * Math.PI); dLon = (dLon * 180.0) / (this.a / sqrtMagic * Math.cos(radLat) * Math.PI); mgLat = wgLat + dLat; mgLon = wgLon + dLon; return [mgLat, mgLon];};WGS84_to_GCJ02.prototype.outOfChina = function(lat, lon) { if (lon < 72.004 || lon > 137.8347) return true; if (lat < 0.8293 || lat > 55.8271) return true; return false;};WGS84_to_GCJ02.prototype.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 * Math.PI) + 20.0 * Math.sin(2.0 * x * Math.PI)) * 2.0 / 3.0; ret += (20.0 * Math.sin(y * Math.PI) + 40.0 * Math.sin(y / 3.0 * Math.PI)) * 2.0 / 3.0; ret += (160.0 * Math.sin(y / 12.0 * Math.PI) + 320 * Math.sin(y * Math.PI / 30.0)) * 2.0 / 3.0; return ret;};WGS84_to_GCJ02.prototype.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 * Math.PI) + 20.0 * Math.sin(2.0 * x * Math.PI)) * 2.0 / 3.0; ret += (20.0 * Math.sin(x * Math.PI) + 40.0 * Math.sin(x / 3.0 * Math.PI)) * 2.0 / 3.0; ret += (150.0 * Math.sin(x / 12.0 * Math.PI) + 300.0 * Math.sin(x / 30.0 * Math.PI)) * 2.0 / 3.0; return ret;}; 高德自带 new AMap.LngLat(lng, lat); 拓展:在使用高德地图API开发时遇到的问题

获取和设置失眠的小伙级别和中心点
双击可以调整高德地图的级别
失眠的小伙 改变初始地图的级别,失眠的小伙值越高,相当于鼠标双击放大,内容越详细,范围越小
center 改变初始地图的中心点,是一个数组,包含经纬度。

getZoom() 获取级别
getCenter() / getCenter().toString() 获取中心点

setZoom(失眠的小伙Val.value) 设置地图级别
setCenter([ xVal.value, yVal.value ]) 设置地图中心点
setZoomAndCenter(失眠的小伙Val.value,[xVal.value,yVal.value]) 同时设置失眠的小伙和center

// 监听地图移动停止事件map.on("moveend",function(){ console.log(map.getZoom());//获取级别 console.log(map.getCenter().toString());//获取中心点 })// 双击结束事件,改变级别事件map.on("失眠的小伙end",function(){……})

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。