Hbuilder uni.getLocation gcj02获取失败问题

  1. 在Hbuilder中uni.getLocation获得经纬度函数使用方式如下
uni.getLocation({
	type: 'wgs84',
	success: function(res) {
		_this.location = res.longitude + ',' + res.latitude;
		_this.longitude = res.longitude;
		_this.latitude = res.latitude;
	}
}

默认情况下如果获得wgs84坐标体系,只要配置maps选项就可以如下配置

 

Hbuilder uni.getLocation gcj02获取失败问题_第1张图片2. 实际中百度,高德地图都是以gcj02坐标体系进行定位。因此我们必须获取gcj02坐标体系。获取gcj坐标体系,需要引入定位sdk以及配置正确的。具体部署如下

代码参数修改

uni.getLocation({
	type: 'gcj02',
	success: function(res) {
		_this.location = res.longitude + ',' + res.latitude;
		_this.longitude = res.longitude;
		_this.latitude = res.latitude;
	}
}

2.1 生成打包证书。 我就是因为习惯性使用公共证书打包,导致获取gcj02坐标一直提示key失败

步骤一:证书,生成过程中需要记住别名,证书密码

keytool -genkey -alias mwd(这个是证书别名) -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore(生成的证书文件)

步骤二:查看SHA1

keytool -list -v -keystore test.keystore

2.2 高德开发者账户中设置SHA1和打包名(这里的打包名为Hbuilder打包时候的名称)

高德地址我的应用 | 高德控制台

Hbuilder uni.getLocation gcj02获取失败问题_第2张图片

2.3 获取高德Key

 Hbuilder uni.getLocation gcj02获取失败问题_第3张图片

 3. 设置Huilder打包配置,选择Geolocation, 这里的Appkey android 为2.3获取的key

Hbuilder uni.getLocation gcj02获取失败问题_第4张图片

4. Hbuilder打包选择证书,配置包名。

注意:

1) 这里的包名与2.2包名相同。

2) 证书选择自有证书,并选择2.1生成的证书,别名与密码

Hbuilder uni.getLocation gcj02获取失败问题_第5张图片

 

你可能感兴趣的:(android)