首先需要申请高德账号并把开发程序给绑定,这里直接跳过了

高德地图.png

然后在manifest.json中进行配置,这里的key都是图1中配置得到的key

高德地图2.png

首先先检查手机是否打开了定位权限,如果没有就弹框引导用户打开手机权限

export const openPosition = ()=>{

let system = uni.getSystemInfoSync()

if(system.platform === 'android'){//判断平台

var context = plus.android.importClass("android.content.Context")

var locationManager = plus.android.importClass("android.location.LocationManager")

var main = plus.android.runtimeMainActivity()

var mainSvr = main.getSystemService(context.LOCATION_SERVICE)

console.log('GPS',mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER))

if(!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)){

uni.showModal({

title:'提示',

content:'请打开定位服务功能',

showCancel:false,

success() {

if(!mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)){

let main = plus.android.runtimeMainActivity();

let Intent = plus.android.importClass("android.content.Intent");

let mIntent = new Intent('android.settings.ACTION_SETTINGS');

main.startActivity(mIntent);//打开系统设置GPS服务页面

}else{

uni.showToast({

title:'定位功能已启动',

duration:2000

})

}

}

})

}

}

}

先通过uniapp的api获取当前的地理位置坐标,然后通过高德api进行解析,获取地理位置数据

getCurLocation(){

uni.getLocation({

geocode:true,

type: 'gcj02',

success:async (res)=>{

let { pois } = await posToCity(

{

latitude: res.latitude,

longitude: res.longitude,

},

1

);

this.address = pois[0].title

this.latitude = res.latitude

this.longitude = res.longitude

uni.setStorageSync('latitude',res.latitude)

uni.setStorageSync('longitude',res.longitude)

this.curAddress = store.state.address.curPickAddress.title

}

})

}

// 高德坐标解析

export const posToCity = async (location, extensions = 0) => new Promise((resolve, reject) => {

uni.request({

url: `https://restapi.amap.com/v3/geocode/regeo`,

method: 'GET',

data: {

key: gdMapKey,

location: `${location.longitude},${location.latitude}`,

extensions: extensions ? 'all' : 'base'

},

success: ({data}) => {

const {status, info, regeocode} = data

if (status === '1') {

// console.log(regeocode)

if ('pois' in regeocode) {

regeocode.pois = regeocode.pois.filter(item => typeof item.address === 'string' && typeof item.location === 'string').map(item => ({

id: item.id,

title: item.name,

address: item.address,

location: {

lat: item.location.split(',')[1],

lng: item.location.split(',')[0]

}

}))

}

resolve(regeocode)

} else {

reject(info)

}

},

fail: err => {

reject(err)

}

})

})

最后拿到数据进行渲染,得到成果图

高德地图3.jpg

uniapp 定位服务_uniapp使用高德地图定位相关推荐

  1. uniapp开发app中配置高德地图定位流程

    在使用uniapp开发app过程中,如何使用高德地图进行定位 高德地图开放平台账号申请 进入高德地图开放平台,注册并登陆开发者账号,完成之后点击进入控制台主页 在应用管理中点击创建新应用 输入并选择你 ...

  2. 安卓系统高德怎么定位服务器,怎么使用高德地图定位和导航功能?

    去到一个陌生的城市,我们往往会因为无法明辨位置方向感到茫然无措,这个时候地图就发挥了它的作用.现在我们常常会在手机里安装地图软件,可以通过手机软件导航来定位和寻找目的地.今天,小编就来说说怎么用高德地 ...

  3. uniapp使用高德地图定位(兼容app)

    1.获取Key  查看官方文档 需要:应用包名和SHA1(获取方法查看) ​2.配置manifest.json ​ 3.设置安全通讯域名 登录微信公众平台,在 "设置"->& ...

  4. 高德地图 定位失败,10: 定位服务启动失败 解决办法

    问题: 在使用高德地图的时候,根据官方API的代码写出demo后,定位服务无效,并且提示 定位失败,10: 定位服务启动失败.如下图: 解决办法: 在AndroidManifest中添加 <se ...

  5. 安卓开发 高德地图定位的封装 十分钟上手

    前言 地图作为开发中三方sdk中较常遇到的一项,集成起来并不麻烦但是不小心踩坑可能会浪费较多时间,如果项目中多处使用还容易造成代码大量冗余,今天我们来将高德地图定位功能集成一个功能化模块,只需两分钟应 ...

  6. android 定位工具类,高德地图定位工具类

    引言 定位功能初始化设置时耗时较多,如果放在Activity中操作,难免会有Activity切换较慢的问题.通过该工具类,可以实现一次初始化,多处随时调用.具有占用资源少,使用方便,便于复用,速度快, ...

  7. 高德地图定位的简单实现

    1.要实现高德地图的定位,首先要下载高德地图的SDK以及高德地图定位的SDK 下载地址:http://lbs.amap.com/api/android-sdk/download/ http://lbs ...

  8. android 高德地图 lbstraceclient,安卓高德地图定位篇-(1)

    安卓高德地图定位.先看效果图: STEP1: 先去高德开放平台注册账号,这个不用多说吧 网址:https://lbs.amap.com/ 之后再去控制台-应用管理找到自己的key,如下图所示 STEP ...

  9. autojs之高德地图定位

    使用场景 定位 效果展示 开发环境配置 软件 版本 autojs 8.7.3-0 java 1.8.0_131 android studio 4.1.2 原理 autojs使用高地地图sdk, 实现设 ...

  10. android中高德地图定位功能并且获取定位的城市

    一.概述 今天再一次用到了地图定位功能和地图显示功能,以前一直用的是高德地图定位,这次还是用高德,记录一下以便以后再做时方便一些.因为业务需要的功能不是很全,可以参考https://www.2cto. ...

最新文章

  1. 使用计算机视觉算法检测钢板中的焊接缺陷
  2. python将空格变成换行_python之路(2)
  3. Codable 基本使用
  4. 产品要不要做先回答的10个问题
  5. 匿名内部类----java
  6. idea项目在maven projects中变灰色带有删除线的解决办法
  7. python基础教程菜鸟教程-终于懂得python入门菜鸟教程
  8. python 上传文件到服务器(模拟网页前端上传)
  9. Mac安装pr拓展时没有CEP文件夹
  10. 按键精灵通过句柄获取窗口坐标_按键精灵9 得到鼠标指向的窗口句柄
  11. SQA软件质量保证工程师工作职责与素质要求
  12. 蒂姆-库克于2010年5月14日在奥本大学毕业典礼上发表的演讲全文
  13. 基于嵌入式技术的网络视频监控系统
  14. 平年闰年——C++青少年一级考资料
  15. 无线密码破解工具 - Aircrack-ng
  16. java实现分布式项目搭建的方法
  17. 计算机组织简介(Computer Organization)
  18. 985北京航空航天大学软件考研改考!数据结构+软件工程+操作系统
  19. 漏洞检测之POC的学习
  20. 正方形的面积用java写,java 编程 使用接口方式计算圆和正方形的面积(S)和周长(L)...

热门文章

  1. java lang runtime_android – java.lang.RuntimeException:无法启动...
  2. Android百度地图导航出现无法起调问题的解决方法
  3. netcore读取json文件_.Net Core读取Json配置文件
  4. STM32基础12--数模转换(DAC)
  5. Matlab信道容量的迭代计算实验
  6. 【题解】二进制优化的多重背包问题
  7. DOM以及DOM事件的处理方式
  8. 最近心血来潮,准备更新博客
  9. 清除WKWebView cookies
  10. JMETER-清除cookies