uniapp集成方法,跟小程序wx.getLocation不同,可直接获取经纬度及城市信息(当然你也可以先获取经纬度再解析成具体城市) 

uni.getLocation({
			    type: 'wgs84',
				geocode:true,//设置该参数为true可直接获取经纬度及城市信息
			    success: function (res) {
					console.log(res)
					that.addrDel = res;
			    },
				fail: function () {
					uni.showToast({
					    title: '获取地址失败,将导致部分功能不可用',
						icon:'none'
					});
				}
			});

注意:
1.高德地图APP端仅支持gcj02

2.近期发现,iOS就算geocode:true也无法返回address等城市具体信息,只有经纬度;
iOS需要多次调用才能返回address信息,官方说这个bug更新了,需要升级 HBuilderX 3.0.0+ 版本

3.有人说iOS返回的信息是wgs84的坐标,需要将wgs84转换成gcj02坐标(目前没有仔细去测,有发现坐标不准确的可以自行去转换试一下,以下是转换方法)
转换方法:
    npm install下载作为node模块引入

npm install wgs2mars --save-dev

    然后在项目中引入

var transform = require('wgs2mars');
var gcjloc = transform(119.3122312,26.0240049);// 返回{lng: 119.31705425869873, lat: 26.02096344048847}

地图配置:

开启Maps权限:manifest.json文件中选择App模块配置,勾选Maps,选择高德或百度(官方推荐高德,我这里也是使用的高德地图)

地图配置:参考文档 地图插件配置 - DCloud问答

配置地图很快,注册个账号,根据文档操作就行,最好去生成个keystore文件,包名就是打包用的包名,ios的如果暂时不知道可以随便填一个,后面可以修改的

后台MySQL根据经纬度查询附近的地址信息,可参考本人另一篇文章 MySQL获取附近的人 地点范围限制

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐