vue中使用coordtransform进行坐标系转换

7 篇文章 0 订阅
6 篇文章 0 订阅

coordtransform官方库:coordtransform - npm

小程序开发过程中有遇到使用后端或者官方api返回的经纬度直接使用,但在实际底图上显示时会有偏移的情况。这时因为各个平台使用的坐标系不同二导致的,这种情况下可通过使用coordtransform库来进行经纬度转换

一、经纬度转换

1、下载coordtransform库依赖
npm i coordtransform
2、引入依赖
var coordtransform = require('coordtransform')

bd09togcj02         百度经纬度坐标转国测局坐标

gcj02tobd09         国测局坐标(火星坐标)转百度经纬度坐标

wgs84togcj02       wgs84转国测局坐标

gcj02towgs84       国测局坐标(火星坐标)转wgs84坐标

3、坐标转换
const gpsCheck = (type = 'gcj02tobd09') => {
	let result = []
	switch (type) {
		case 'bd09togcj02':
			//百度经纬度坐标转国测局坐标
			result = coordtransform.bd09togcj02('经度', '纬度')
			break
		case 'gcj02tobd09':
			//国测局坐标(火星坐标)转百度经纬度坐标
			result = coordtransform.gcj02tobd09('经度', '纬度')
			break
		case 'wgs84togcj02':
			//wgs84转国测局坐标
			result = coordtransform.wgs84togcj02('经度', '纬度')
			break
		case 'gcj02towgs84':
			//国测局坐标(火星坐标)转wgs84坐标
			result = coordtransform.gcj02towgs84('经度', '纬度')
			break
		default:
			break
	}
}

二、使用百度api进行逆地址解析

1、引用百度底图

<script type="text/javascript" src="【ak】"></script>

2、地址解析

result   为经纬度信息为第一节第3步中转换后的经纬度信息

const point = new BMap.Point(result[0], result[1])
const gc = new BMap.Geocoder()
	gc.getLocation(point, res => {
	// 解析出来的位置信息
})


三、使用高德地图api

    1、微信小程序小程序中使用

           1.1 下载高德微信小程序插件

相关下载-微信小程序插件 | 高德地图API

           1.2 在项目中使用
/**
 * @param {String|Number} lat 纬度
 * @param {String|Number} lng 经度
 */
export const getUserCurrentLocationInfo = (lat, lng) => {
	// 引入高德微信小程序插件资源文件
	var GDMapWX = require('../assets/GD/amap-wx.js');
	var GDMapSdk = new GDMapWX.AMapWX({
		key: '在高德开发平台申请的key' // 必填
	});
	return new Promise((resolve, reject) => {
		GDMapSdk.getRegeo({
			location: lng + ',' + lat,
			success: res => {
				console.log(res, 'res--res');
				let info = res[0]?.regeocodeData?.addressComponent || null
				if (info) {
					resolve(info)
				} else {
					reject()
				}
			},
			fail: function(error) {
				reject()
			}
		})
	})
}

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值