当前位置: 首页 > news >正文

鸿蒙原生应用元服务开发-位置服务地理编码转化开发

(逆)地理编码转化开发
场景概述
使用坐标描述一个位置,非常准确,但是并不直观,面向用户表达并不友好。系统向开发者提供了以下两种转化能力。
地理编码转化:将地理描述转化为具体坐标。

逆地理编码转化能力:将坐标转化为地理描述。
其中地理编码包含多个属性来描述位置,包括国家、行政区划、街道、门牌号、地址描述等等,这样的信息更便于用户理解。
接口说明
进行坐标和地理编码信息的相互转化,所使用的接口说明如下。
 

鸿蒙原生应用元服务开发-位置服务地理编码转化开发-鸿蒙开发者社区


开发步骤
说明
GeoConvert需要访问后端服务,请确保设备联网,以进行信息获取。
导入geoLocationManager模块,所有与(逆)地理编码转化能力相关的功能API,都是通过该模块提供的。

.import geoLocationManager from '@ohos.geoLocationManager';

查询geoCoder服务是否可用。
调用isGeoServiceAvailable查询geoCoder服务是否可用,如果服务可用再继续进行步骤3。

import geoLocationManager from '@ohos.geoLocationManager';
try {let isAvailable = geoLocationManager.isGeocoderAvailable();
} catch (err) {console.error("errCode:" + err.code + ",errMessage:" + err.message);
}

获取转化结果。
调用getAddressesFromLocation,坐标转化地理位置信息。

let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
try {geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {if (err) {console.log('getAddressesFromLocation err: ' + JSON.stringify(err));} else {console.log('getAddressesFromLocation data: ' + JSON.stringify(data));}});
} catch (err) {console.error("errCode:" + err.code + ",errMessage:" + err.message);
}

参考接口API说明位置服务,应用可以获得与此坐标匹配的GeoAddress列表,应用可以根据实际使用需求,读取相应的参数数据。
调用getAddressesFromLocationName位置描述转化坐标。

.let geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
.try {
.    geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
.        if (err) {
.            console.log('getAddressesFromLocationName err: ' + JSON.stringify(err));
.        } else {
.            console.log('getAddressesFromLocationName data: ' + JSON.stringify(data));
.        }
.    });
.} catch (err) {
.    console.error("errCode:" + err.code + ",errMessage:" + err.message);
.}

参考接口API说明,应用可以获得与位置描述相匹配的GeoAddress列表,其中包含对应的坐标数据,请参考API使用。
如果需要查询的位置描述可能出现多地重名的请求,可以设置GeoCodeRequest,通过设置一个经纬度范围,以高效地获取期望的准确结果。
本文引用参考HarmonyOS官方API9。

http://www.lryc.cn/news/370443.html

相关文章:

  • 【ArcGISPro SDK】构建多面体要素
  • leetcode够用之java语法
  • pdf文件怎么改变大小?在线快速压缩pdf的方法
  • inferCNV:scRNA-seq数据推断染色体拷贝数变化
  • 银河麒麟操作系统通过首批软件供应链安全能力认证
  • 【MySQL】数据库介绍|数据库分类|MySQL的基本结构|MySQL初步认识|SQL分类
  • 2024年6月11日 (周二) 叶子游戏新闻
  • JavaSE----类和对象(中)
  • STC8增强型单片机进阶开发--OLED显示器(SPI)
  • 在CSS中,可以使用 float 属性来设置元素浮动
  • wordpress主题开发
  • Elasticsearch 认证模拟题 - 17
  • Swift 中更现代化的调试日志系统趣谈(一)
  • 深入理解Java中的SPI机制
  • 2、python 基础学习总结
  • 线程的状态!!!
  • Hsah碰撞(冲突)是什么?如何解决?
  • doc 和 docx 文件的区别
  • 泛微OA E9 浏览框显示的数据根据表单字段过滤
  • AIGC涉及到的算法(一)
  • 一种基于单片机的智能饮水机设计
  • 竞争性谈判和竞争性磋商的区别(电子化招采系统)
  • STM32F413 STM32F423数据手册 中文版 STM32F413 STM32F423勘误手册英文版等文档
  • 【Vue】——前端框架的基本使用
  • tmux-以脚本中的tmux命令为例解释常用tmux命令
  • 计算机网络 —— 数据链路层(以太网)
  • 记录 unplugin-vue-components不生效
  • ⭐Unity 控制任意UI的渐隐渐显
  • web移动前端网页:深度剖析与未来展望
  • 人脸识别之--计算余弦相似度-android