在vue项目中 自定义腾讯 与 百度经纬度互转方法

//腾讯地图转百度地图经纬度
Vue.prototype.TxMapTransBMap=function(lng, lat) {//经度,纬度
      let x_pi = Math.PI * 3000.0 / 180.0;//Math.PI ~ 3.14159265358979324
      let x = lng;
      let y = lat;
      let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
      let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
      let lngs = z * Math.cos(theta) + 0.0065;
      let lats = z * Math.sin(theta) + 0.006;
      return {
          lng: lngs,
          lat: lats 
      } 
}

百度转腾讯

//百度地图转腾讯地图经纬度
Vue.prototype.BMapTransTxMap=function(lng,lat){
	let x_pi = Math.PI * 3000.0 / 180.0;
	let x = lng - 0.0065;
	let y = lat - 0.006;
	let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
	let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
	let lngs = z * Math.cos(theta);
	let lats = z * Math.sin(theta);
	return {
		lng:lngs,
		lat:lats
	}
}

方法二:
地理坐标系转换工具,支持WGS84/GCJ02/BD09等常用坐标系互转

官网
<script src="https://unpkg.com/gcoord/dist/gcoord.js"></script>
// js引入
import gcoord from '@/common/gcoord.js'

手机的GPS得到一个经纬度坐标,展示在高德地图上,则应该将当前坐标从WGS-84坐标系转换为GCJ-02坐标系


var result = gcoord.transform(
  [120.203516, 30.156324],    // 经纬度坐标
  gcoord.WGS84,               // 当前坐标系
  gcoord.GCJ02                // 目标坐标系
);
Logo

前往低代码交流专区

更多推荐