chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS實戰(zhàn):高德地圖定位功能完整流程詳解

尤楓 ? 來源:jf_54996641 ? 作者:jf_54996641 ? 2025-06-09 15:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

地圖定位功能相信很多人都用過,在鴻蒙的應(yīng)用程序開發(fā)中,使用高德地圖的定位功能變得十分常見,那么在鴻蒙中一次完整的地位功能怎么實現(xiàn)?如果定位失敗了,能否獲取前幾次的定位呢?本篇文章帶你實現(xiàn)一個完整的定位功能流程,建議點贊收藏!

需求分析

要想實現(xiàn)一個完整的定位需求流程,就必須要做好準備工作,了解實現(xiàn)需求的具體步驟。

  • 權(quán)限申請
  • 檢查 GPS 是否打開
  • 單次定位還是多次定位
  • 定位失敗處理

技術(shù)實現(xiàn)

要想實現(xiàn)一次完整的定位流程,必須根據(jù)需要分析一步步去實現(xiàn),由于高德地圖的引入太過于簡單,這里一筆帶過。重點講解完整實現(xiàn)的步驟。

  1. 添加基本定位權(quán)限,在 entry 模塊下的 module.json5 中添加定位必要的兩個權(quán)限。
{
        // user_grant
        "name": "ohos.permission.APPROXIMATELY_LOCATION",
        "reason": "$string:location_permissions_reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "always"
        }
      },
      {
        // user_grant
        "name": "ohos.permission.LOCATION",
        "reason": "$string:location_permissions_reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "always"
        }
      },
  1. 在頁面中進行權(quán)限申請,一般是在 onPageShow 生命周期方法中申請,先檢查系統(tǒng) GPS 定位開關(guān)是否開啟,如果沒有開啟則提示用戶跳轉(zhuǎn)到系統(tǒng)指定位置打開。
let location =  geoLocationManager.isLocationEnabled()
 if (!location) {
        let dialog = new OpenSystemGPSEHelper()
        dialog.show(this.getUIContext(),getContext(this) as common.UIAbilityContext,()= >{
          this.currentCity = "定位失敗"
        })
      }

//GPS跳轉(zhuǎn)頁面
context.startAbility(
          {
            bundleName: "com.huawei.hmos.settings",

            abilityName: "com.huawei.hmos.settings.MainAbility",

            uri: "location_manager_settings"

          },
  1. 確認 GPS 打開之后,開始 申請 用戶權(quán)限。
static applyPermission(context: common.UIAbilityContext, permissions: Array< Permissions >, grantedBlock: () = > void,
    deniedBlock?: () = > void) {
    let atManager = abilityAccessCtrl.createAtManager()
    let permissionGrantedNumber: number = 0 
    atManager.requestPermissionsFromUser(context, permissions).then((data) = > {
      for (let index = 0; index < data.authResults.length; index++) {
        if (data.authResults[index] == 0) { 
          permissionGrantedNumber++;
        }
      }
      if (permissionGrantedNumber == permissions.length) {
        grantedBlock()
      } else {
        if (deniedBlock) {
          deniedBlock()
        } else {
          PermissionUtil.openPermissionsInSystemSettings(context)
        }
      }
    })
  }
  1. 如果用戶打開權(quán)限,則直接開始定位服務(wù),否則提示用戶跳轉(zhuǎn)到系統(tǒng)指定位置打開權(quán)限。
let wantInfo: Want = {
      bundleName: 'com.huawei.hmos.settings',
      abilityName: 'com.huawei.hmos.settings.MainAbility',
      uri: 'application_info_entry',
      parameters: {
        settingsParamBundleName: bundleInfo.name
      }
    }
    context.startAbility(wantInfo).then(() = > {
    })
  1. 確認定位權(quán)限沒問題后,開始定位,高德提供的定位有多次和單次,這里使用單次定位。
let listener: IAMapLocationListener = {
      onLocationChanged: (location) = > {
        console.log("當前定位1:"+location.latitude+",---longitude:"+location.longitude)
        this.transformCity(location.latitude,location.longitude)
      }, onLocationError: (error) = > {
      }
    };
    LocationManager.getInstance().addListener(listener)
    LocationManager.getInstance().initLocation()
     // 定位參數(shù)配置
    let options: AMapLocationOption = {
      //定位優(yōu)先配置選項
      priority: geoLocationManager.LocationRequestPriority.FIRST_FIX,
      //定位場景設(shè)置
      scenario: geoLocationManager.LocationRequestScenario.UNSET,
      //定位精度 單位:米
      maxAccuracy: 0,
      //指定單次定位超時時間
      singleLocationTimeout: 3000,
      //定位是否返回逆地理信息
      locatingWithReGeocode: true,
      //逆地址語言類型
      reGeocodeLanguage: AMapLocationReGeocodeLanguage.Chinese,
      isOffset: false //是否加偏
    }
    // 設(shè)置配置
    this.locationManger?.setLocationOption(AMapLocationType.Single, options)
    if (this.listener != undefined) {
      // 監(jiān)聽
      this.locationManger?.setLocationListener(AMapLocationType.Single, this.listener)
    }
    // 啟動定位
    this.locationManger?.requestSingleLocation()
  1. 定位成功拿到定位的信息,在實際開發(fā)中盡管設(shè)置中已經(jīng)設(shè)置返回逆地理信息,但并沒有返回具體信息,這點實在是無法理解,只能得到當前位置的經(jīng)緯度。這個時候需要將經(jīng)緯度轉(zhuǎn)換為當前位置名稱。
  2. 在開發(fā)中通過使用華為官方系統(tǒng)中的 api,對經(jīng)緯度進行逆編碼才能獲取準備的位置名稱。
let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude":latitude, "longitude":longitude, "maxItems": 1};
    try {
      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) = > {})
  1. 如果地圖定位失敗,則可以根據(jù)高德地圖提供的方法,嘗試拿取歷史定位信息。
LocationManager.getInstance().getLastLocation({
      onLocationChanged: (location) = > {
        console.info('地圖定位緩存獲取成功:  ' + JSON.stringify(location))
        

        if (success) {
          success()
        }
      }, onLocationError: (e) = > {
        console.info('地圖定位緩存獲取失敗:  ' + JSON.stringify(e))
      
        if (success) {
          success()
        }
      }
    })
  1. 如果歷史定位信息也獲取失敗,這時就能使用默認定位位置了。

總結(jié)

定位功能實現(xiàn)起來比較簡單,但是完整的定位流程及細節(jié)處理才是本篇文章的關(guān)鍵,相信看完本篇文章你已經(jīng)學(xué)會在鴻蒙中怎么使用高德定位功能了,快去動手嘗試一下吧!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 定位
    +關(guān)注

    關(guān)注

    5

    文章

    1446

    瀏覽量

    35976
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2126

    瀏覽量

    33065
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    HarmonyOS 5】鴻蒙星閃NearLink詳解

    HarmonyOS 5】鴻蒙星閃NearLink詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財# 一、前言 鴻蒙星閃NearLink Kit
    的頭像 發(fā)表于 07-11 18:24 ?314次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】鴻蒙星閃NearLink<b class='flag-5'>詳解</b>

    示波器MSOX3104A自動測量功能詳解實戰(zhàn)技巧

    一、引言 在電子工程、通信調(diào)試、自動化控制等領(lǐng)域,示波器是工程師不可或缺的測試工具。是科技(Keysight)的MSOX3104A示波器憑借其高精度、多功能特性,尤其在自動測量功能上實現(xiàn)了智能化
    的頭像 發(fā)表于 07-03 13:52 ?103次閱讀
    是<b class='flag-5'>德</b>示波器MSOX3104A自動測量<b class='flag-5'>功能</b><b class='flag-5'>詳解</b>與<b class='flag-5'>實戰(zhàn)</b>技巧

    地圖攜手華為推出長隧道車道級導(dǎo)航

    地圖攜手華為Pura80系列,支持超長隧道全程車道級導(dǎo)航,為行車安全與效率帶來全新升級。
    的頭像 發(fā)表于 07-02 16:44 ?389次閱讀

    鴻蒙地圖功能開發(fā)【3. 代碼開發(fā)】##地圖開發(fā)##

    在開發(fā)地圖相關(guān)功能的時候也是這個想法。我最近做的項目是類似于校園配送的app,下單的用戶需要去查看配送員的實時位置。配送員的app負責定位,用戶的app上查看地圖,測試的時候發(fā)現(xiàn),不管
    發(fā)表于 06-29 22:59

    鴻蒙地圖功能開發(fā)【1. 開發(fā)準備】##地圖開發(fā)##

    ? 對于地圖功能的開發(fā),有以下三種思路 使用鴻蒙官方的Map Kit進行開發(fā) 使用第三方地圖的SDK(例如地圖、百度
    發(fā)表于 06-29 22:52

    HarmonyOS 5】桌面快捷方式功能實現(xiàn)詳解

    HarmonyOS 5】桌面快捷方式功能實現(xiàn)詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財# 一、前言 在移動應(yīng)用開發(fā)中,如何讓用戶快速
    的頭像 發(fā)表于 06-21 16:42 ?292次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】桌面快捷方式<b class='flag-5'>功能</b>實現(xiàn)<b class='flag-5'>詳解</b>

    HarmonyOS 5】鴻蒙中的UIAbility詳解(三)

    HarmonyOS 5】鴻蒙中的UIAbility詳解(三) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財# 一、前言 本文是鴻蒙中的UIAbility
    的頭像 發(fā)表于 06-14 22:32 ?48次閱讀

    發(fā)布智能眼鏡行業(yè)解決方案

    近日,地圖旗下開放平臺正式發(fā)布智能眼鏡解決方案,標志著其在空間計算與智能穿戴領(lǐng)域的技術(shù)創(chuàng)新邁入新階段。
    的頭像 發(fā)表于 06-09 15:10 ?436次閱讀

    HarmonyOS實戰(zhàn)地圖自定義定位圖標展示

    前言 地圖定位功能基本上已經(jīng)成了日常應(yīng)用程序的必備功能之一,在日常開發(fā)地圖定位
    的頭像 發(fā)表于 06-09 14:59 ?237次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>實戰(zhàn)</b>:<b class='flag-5'>高</b><b class='flag-5'>德</b><b class='flag-5'>地圖</b>自定義<b class='flag-5'>定位</b>圖標展示

    谷歌地圖GPS定位

    谷歌地圖GPS定位:精準導(dǎo)航背后的技術(shù)解析 谷歌地圖作為全球最受歡迎的地圖服務(wù)之一,其精準的GPS定位
    的頭像 發(fā)表于 05-29 16:54 ?312次閱讀

    地圖與Rokid達成合作

    近日,地圖與Rokid宣布達成合作,將共同推出基于全場景智能眼鏡Rokid Glasses的全球首個導(dǎo)航智能體(NaviAgent)應(yīng)用,標志著
    的頭像 發(fā)表于 05-20 16:00 ?311次閱讀

    高質(zhì)量 HarmonyOS 權(quán)限管控流程

    高質(zhì)量 HarmonyOS 權(quán)限管控流程HarmonyOS 應(yīng)用開發(fā)過程中,往往會涉及到 敏感數(shù)據(jù) 和 硬件資源 的調(diào)動和訪問,而這部分的調(diào)用就會涉及到管控這部分的知識和內(nèi)容了。我們需要對它有
    的頭像 發(fā)表于 04-02 18:29 ?937次閱讀
    高質(zhì)量 <b class='flag-5'>HarmonyOS</b> 權(quán)限管控<b class='flag-5'>流程</b>

    地圖與長城汽車共建出行聯(lián)合創(chuàng)新LAB

    近日,地圖與長城汽車在河北舉行出行聯(lián)合創(chuàng)新LAB揭牌儀式,雙方將圍繞導(dǎo)航出行領(lǐng)域展開深度合作,共創(chuàng)未來用戶智慧出行新體驗。與此同時,基于
    的頭像 發(fā)表于 01-07 10:03 ?494次閱讀

    長城汽車聯(lián)手地圖打造出行聯(lián)合創(chuàng)新LAB

    近日,長城汽車與地圖基于長期良好的合作基礎(chǔ),聯(lián)手打造的“出行聯(lián)合創(chuàng)新LAB”正式在保定市長城汽車技術(shù)中心揭牌。根據(jù)共同約定,雙方將通過出行聯(lián)合創(chuàng)新LAB,發(fā)揮各自優(yōu)勢,共同研究、探索基于用戶出行
    的頭像 發(fā)表于 01-07 09:51 ?584次閱讀

    淺談芯片制造的完整流程

    在科技日新月異的今天,芯片作為信息技術(shù)的核心部件,其制作工藝的復(fù)雜性和精密性令人嘆為觀止。從一粒普通的沙子到一顆蘊含無數(shù)晶體管的高科技芯片,這一過程不僅凝聚了人類智慧的結(jié)晶,也展現(xiàn)了現(xiàn)代半導(dǎo)體工業(yè)的極致工藝。本文將講述芯片制造的完整流程,揭開這一高科技產(chǎn)品的神秘面紗。
    的頭像 發(fā)表于 10-28 14:30 ?1738次閱讀
    淺談芯片制造的<b class='flag-5'>完整流程</b>