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

手机商城网站开发浙江广发建设有限公司网站

手机商城网站开发,浙江广发建设有限公司网站,廊坊网站建设公司墨子,网上备案位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面#xff0c;如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。这些习以为常的活动#xff0c;都离不开定位用户终端设备的位置。 当用户处于这些丰富的使用场景中时#xff0c;系统的位置能力…位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面如查看所在城市的天气、新闻轶事、出行打车、旅行导航、运动记录。这些习以为常的活动都离不开定位用户终端设备的位置。 当用户处于这些丰富的使用场景中时系统的位置能力可以提供实时准确的位置数据。对于开发者设计基于位置体验的服务也可以使应用的使用体验更贴近每个用户。 当应用在实现基于设备位置的功能时如驾车导航记录运动轨迹等可以调用该模块的 API 接口完成位置信息的获取。 位置服务简介 位置子系统使用多种定位技术提供服务如 GNSS 定位、基站定位、WLAN/蓝牙定位基站定位、WLAN/蓝牙定位后续统称“网络定位技术”通过这些定位技术无论用户设备在室内或是户外都可以准确地确定设备位置。 位置服务除了提供基础的定位服务之外还提供了地理围栏、地理编码、逆地理编码、国家码等功能和接口。 ● 坐标 系统以 1984 年世界大地坐标系统为参考使用经度、纬度数据描述地球上的一个位置。 ● GNSS 定位 基于全球导航卫星系统包含GPS、GLONASS、北斗、Galileo 等通过导航卫星、设备芯片提供的定位算法来确定设备准确位置。定位过程具体使用哪些定位系统取决于用户设备的硬件能力。 ● 基站定位 根据设备当前驻网基站和相邻基站的位置估算设备当前位置。此定位方式的定位结果精度相对较低并且需要设备可以访问蜂窝网络。 ● WLAN、蓝牙定位 根据设备可搜索到的周围 WLAN、蓝牙设备位置估算设备当前位置。此定位方式的定位结果精度依赖设备周围可见的固定 WLAN、蓝牙设备的分布密度较高时精度也相较于基站定位方式更高同时也需要设备可以访问网络。 运作机制 位置能力作为系统为应用提供的一种基础服务需要应用在所使用的业务场景向系统主动发起请求并在业务场景结束时主动结束此请求在此过程中系统会将实时的定位结果上报给应用。 约束与限制 使用设备的位置能力需要用户进行确认并主动开启位置开关。如果位置开关没有开启系统不会向任何应用提供位置服务。 设备位置信息属于用户敏感数据所以即使用户已经开启位置开关应用在获取设备位置前仍需向用户申请位置访问权限。在用户确认允许后系统才会向应用提供位置服务。 申请位置权限开发指导 场景概述 应用在使用位置服务系统能力前需要检查是否已经获取用户授权访问设备位置信息。如未获得授权可以向用户申请需要的位置权限。 系统提供的定位权限有 ● ohos.permission.LOCATION用于获取精准位置精准度在米级别。 ● ohos.permission.APPROXIMATELY_LOCATION用于获取模糊位置精确度为 5 公里。 ● ohos.permission.LOCATION_IN_BACKGROUND用于应用切换到后台仍然需要获取定位信息的场景。 访问设备的位置信息必须申请权限并且获得用户授权。 表 1 位置权限申请方式介绍 如果应用在后台运行时也需要访问设备位置除需要将应用声明为允许后台运行外还必须申请 ohos.permission.LOCATION_IN_BACKGROUND 权限这样应用在切入后台之后系统可以继续上报位置信息。 开发者可以在应用配置文件中声明所需要的权限具体可参考授权申请指导。 位置服务每个接口需要申请哪些权限可以参见如下文档位置服务。 开发步骤 具体可参考授权申请指导。 获取设备的位置信息开发指导 场景概述 开发者可以调用 HarmonyOS 位置相关接口获取设备实时位置或者最近的历史位置。 对于位置敏感的应用业务建议获取设备实时位置信息。如果不需要设备实时位置信息并且希望尽可能的节省耗电开发者可以考虑获取最近的历史位置。 接口说明 获取设备的位置信息所使用的接口如下详细说明参见位置服务。 表 2 获取设备的位置信息接口介绍 开发步骤 1.  获取设备的位置信息需要有位置权限位置权限申请的方法和步骤见申请位置权限开发指导。 2.  导入 geoLocationManager 模块所有与基础定位能力相关的功能 API都是通过该模块提供的。 import geoLocationManager from ohos.geoLocationManager;3.  实例化 LocationRequest 对象用于告知系统该向应用提供何种类型的位置服务以及位置结果上报的频率。 方式一 为了面向开发者提供贴近其使用场景的 API 使用方式系统定义了几种常见的位置能力使用场景并针对使用场景做了适当的优化处理应用可以直接匹配使用简化开发复杂度。系统当前支持场景如下表所示。 定位场景类型说明 a.  导航场景NAVIGATION 适用于在户外定位设备实时位置的场景如车载、步行导航。 在此场景下为保证系统提供位置结果精度最优主要使用 GNSS 定位技术提供定位服务结合场景特点在导航启动之初用户很可能在室内、车库等遮蔽环境GNSS 技术很难提供位置服务。 为解决此问题我们会在 GNSS 提供稳定位置结果之前使用系统网络定位技术向应用提供位置服务以在导航初始阶段提升用户体验。 此场景默认以最小 1 秒间隔上报定位结果使用此场景的应用必须申请 ohos.permission.LOCATION 权限同时获得用户授权。 b.  轨迹跟踪场景TRAJECTORY_TRACKING 适用于记录用户位置轨迹的场景如运动类应用记录轨迹功能。主要使用 GNSS 定位技术提供定位服务。 此场景默认以最小 1 秒间隔上报定位结果并且应用必须申请 ohos.permission.LOCATION 权限同时获得用户授权。 c.  出行约车场景CAR_HAILING 适用于用户出行打车时定位当前位置的场景如网约车类应用。 此场景默认以最小 1 秒间隔上报定位结果并且应用必须申请 ohos.permission.LOCATION 权限同时获得用户授权。 d.  生活服务场景DAILY_LIFE_SERVICE 生活服务场景适用于不需要定位用户精确位置的使用场景如新闻资讯、网购、点餐类应用做推荐、推送时定位用户大致位置即可。 此场景默认以最小 1 秒间隔上报定位结果并且应用至少申请 ohos.permission.LOCATION 权限同时获得用户授权。 e.  无功耗场景NO_POWER 无功耗场景适用于不需要主动启动定位业务。系统在响应其他应用启动定位业务并上报位置结果时会同时向请求此场景的应用程序上报定位结果当前的应用程序不产生定位功耗。 此场景默认以最小 1 秒间隔上报定位结果并且应用需要申请 ohos.permission.LOCATION 权限同时获得用户授权。 export enum LocationRequestScenario { UNSET 0x300, NAVIGATION, TRAJECTORY_TRACKING, CAR_HAILING, DAILY_LIFE_SERVICE, NO_POWER, } 以导航场景为例实例化方式如下 let requestInfo  {scenario: geoLocationManager.LocationRequestScenario.NAVIGATION, timeInterval: 0, distanceInterval: 0, maxAccuracy: 0}; 方式二 如果定义的现有场景类型不能满足所需的开发场景系统提供了基本的定位优先级策略类型。 定位优先级策略类型说明 ● 定位精度优先策略ACCURACY 定位精度优先策略主要以 GNSS 定位技术为主在开阔场景下可以提供米级的定位精度具体性能指标依赖用户设备的定位硬件能力但在室内等强遮蔽定位场景下无法提供准确的位置服务。 ● 快速定位优先策略FIRST_FIX 快速定位优先策略会同时使用 GNSS 定位、基站定位和 WLAN、蓝牙定位技术以便室内和户外场景下通过此策略都可以获得位置结果当各种定位技术都有提供位置结果时系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用对设备的硬件资源消耗较大功耗也较大。 ● 低功耗定位优先策略LOW_POWER 低功耗定位优先策略主要使用基站定位和 WLAN、蓝牙定位技术也可以同时提供室内和户外场景下的位置服务因为其依赖周边基站、可见 WLAN、蓝牙设备的分布情况定位结果的精度波动范围较大如果对定位结果精度要求不高或者使用场景多在有基站、可见 WLAN、蓝牙设备高密度分布的情况下推荐使用可以有效节省设备功耗。 export enum LocationRequestPriority { UNSET 0x200, ACCURACY, LOW_POWER, FIRST_FIX, } 以定位精度优先策略为例实例化方式如下 let requestInfo  {priority: geoLocationManager.LocationRequestPriority.ACCURACY, timeInterval: 0, distanceInterval: 0, maxAccuracy: 0};4.  实例化 Callback 对象用于向系统提供位置上报的途径。 应用需要自行实现系统定义好的回调接口并将其实例化。系统在定位成功确定设备的实时位置结果时会通过该接口上报给应用。应用程序可以在接口的实现中完成自己的业务逻辑。 let locationChange (location) {    console.log(locationChanger: data:  JSON.stringify(location));}; 5.  启动定位。 geoLocationManager.on(locationChange, requestInfo, locationChange);6.  可选结束定位。 如果不主动结束定位可能导致设备功耗高耗电快建议在不需要获取定位信息时及时结束定位。 geoLocationManager.off(locationChange, locationChange);如果应用使用场景不需要实时的设备位置可以获取系统缓存的最近一次历史定位结果。 import geoLocationManager from ohos.geoLocationManager;try { let location  geoLocationManager.getLastLocation();} catch (err) {    console.error(errCode:  err.code  ,errMessage:  err.message);} 逆地理编码转化开发指导 场景概述 使用坐标描述一个位置非常准确但是并不直观面向用户表达并不友好。系统向开发者提供了以下两种转化能力。 ● 地理编码转化将地理描述转化为具体坐标。 ● 逆地理编码转化能力将坐标转化为地理描述。 其中地理编码包含多个属性来描述位置包括国家、行政区划、街道、门牌号、地址描述等等这样的信息更便于用户理解。 接口说明 进行坐标和地理编码信息的相互转化所使用的接口说明如下详细信息参见位置服务。 表 3 逆地理编码转化接口介绍 开发步骤 说明 GeoConvert 需要访问后端服务请确保设备联网以进行信息获取。 1.  导入 geoLocationManager 模块所有与逆地理编码转化能力相关的功能 API都是通过该模块提供的。 import geoLocationManager from ohos.geoLocationManager;2.  查询 geoCoder 服务是否可用。 ● 调用 isGeoServiceAvailable 查询 geoCoder 服务是否可用如果服务可用再继续进行步骤 import geoLocationManager from ohos.geoLocationManager;try { let isAvailable  geoLocationManager.isGeocoderAvailable();} catch (err) {    console.error(errCode:  err.code  ,errMessage:  err.message);} 3.  获取转化结果。 ● 调用 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通过设置一个经纬度范围以高效地获取期望的准确结果。 地理围栏开发指导 场景概述 地理围栏就是虚拟地理边界当设备进入、离开某个特定地理区域时可以接收自动通知和警告。 目前仅支持圆形围栏并且依赖 GNSS 芯片的地理围栏功能。 应用场景举例开发者可以使用地理围栏在企业周围创建一个区域进行广告定位在不同的地点在移动设备上进行有针对性的促销优惠。 接口说明 地理围栏所使用的接口如下详细说明参见位置服务。 表 4 地理围栏接口介绍 开发步骤 1.  使用地理围栏功能需要有权限 ohos.permission.APPROXIMATELY_LOCATION位置权限申请的方法和步骤见申请位置权限开发指导。 2.  导入geoLocationManager模块和wantAgent模块。 import geoLocationManager from ohos.geoLocationManager;import wantAgent from ohos.app.ability.wantAgent; 3.  创建WantAgentInfo信息。 场景一创建拉起 Ability 的 WantAgentInfo 信息。 let wantAgentObj  null; // 用于保存创建成功的wantAgent对象后续使用其完成触发的动作。 // 通过WantAgentInfo的operationType设置动作类型let wantAgentInfo  { wants: [ { deviceId: , bundleName: com.example.myapplication, abilityName: EntryAbility, action: , entities: [], uri: , parameters: {} } ], operationType: wantAgent.OperationType.START_ABILITY, requestCode: 0, wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]}; 场景二创建发布公共事件的 WantAgentInfo 信息。 let wantAgentObj  null; // 用于保存创建成功的WantAgent对象后续使用其完成触发的动作。 // 通过WantAgentInfo的operationType设置动作类型let wantAgentInfo  { wants: [ { action: event_name, // 设置事件名 parameters: {}, } ], operationType: wantAgent.OperationType.SEND_COMMON_EVENT, requestCode: 0, wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG],} 4.  调用getWantAgent()方法进行创建 WantAgent。 并且在获取到 WantAgent 对象之后调用地理围栏接口添加围栏。 // 创建WantAgent wantAgent.getWantAgent(wantAgentInfo, (err, data) {if (err) {console.error(getWantAgent err JSON.stringify(err));return;}console.info(getWantAgent success);wantAgentObj  data;let requestInfo  {priority: 0x201, scenario: 0x301, geofence: {latitude: 121, longitude: 26, radius: 100, expiration: 10000}};try {geoLocationManager.on(gnssFenceStatusChange, requestInfo, wantAgentObj);} catch (err) {console.error(errCode:  err.code  ,errMessage:  err.message);} });1.  当设备进入或者退出该围栏时系统会自动触发 WantAgent 的动作。
http://www.zqtcl.cn/news/975016/

相关文章:

  • 匿名聊天网站开发长沙关键词快速排名
  • 成都网站设计报价手机微信官方网站
  • 网页设计模板网站免费做那个男女的视频网站
  • 庄河网站建设如何上传文件到网站
  • 北京企业网站改版wordpress comer
  • 做租赁的行业网站腾讯云服务器用什么做网站
  • 承德优化网站建设建设旅游网网站软件
  • 金山专业网站建设科技作品手工
  • 企业网站开发丨薇大型门户网站制作教程
  • m开头的网站开发工具青少儿编程
  • 确定网站风格域名查询中国万网
  • 邢台网站优化定制网站内怎么做搜索
  • 深圳公司网站开发济宁医院网站建设
  • vr功能网站建设手机网站引导页js插件
  • 汕头企业建站系统模板沈阳网站建设q479185700棒
  • 外包公司做网站多少百度做推广一般要多少钱
  • asp静态网站用shopify 做网站
  • 政务公开和网站建设dedecms模板安装教程
  • 做网站公司选哪家erp财务软件怎么使用
  • 常州网站建设效果网站备案换公司吗
  • 网站排名方法客流统计系统厂家
  • 免费做网站怎么做网站吗广州工程
  • 如何做全景素材网站常州做网站价格
  • 网站域名删除时间查询wordpress首页文章显示图片
  • 做网站需要什么样的服务器用html制作购物网站
  • 运城市住房与城乡建设局网站电脑培训学校课程
  • 二级学院网站建设自评报告最简单网页制作软件
  • 不开网店怎么做淘宝网站建设部网站江苏金安
  • 厦门做网站最好的公司汽车之家官网首页网页
  • 企业网站seo价格免费的网站模版下载