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

无锡网站设计企业做网站公司怎么做

无锡网站设计,企业做网站公司怎么做,美妆网站建设,wordpress注册登录弹窗代码背景 这系列文章主要讲解鸿蒙地图的使用#xff0c;当前可以免费使用#xff0c;并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能#xff0c;轻松完成地图构建工作。需要注意的是#xff0c;现在测试只能使用实体手机去…背景 这系列文章主要讲解鸿蒙地图的使用当前可以免费使用并提供了丰富的SDK给开发者去自定义控件开发。目前可以实现个性化显示地图、位置搜索和路径规划等功能轻松完成地图构建工作。需要注意的是现在测试只能使用实体手机去做调试模拟器和预览器是没有办法做测试和使用的。 地图开发环境搭建 1. AGC中创建项目 在AGC中新建项目并复制AGC项目中的Client ID 填写到工程中的entry模块的module.json5文件中新增metadata配置name为client_idvalue为AGC项目中的Client ID。 {module: {name: entry,type: entry,description: $string:module_desc,mainElement: EntryAbility,deviceTypes: [phone,tablet,2in1],deliveryWithInstall: true,installationFree: false,pages: $profile:main_pages,abilities: [{name: EntryAbility,srcEntry: ./ets/entryability/EntryAbility.ets,description: $string:EntryAbility_desc,icon: $media:layered_image,label: $string:EntryAbility_label,startWindowIcon: $media:startIcon,startWindowBackground: $color:start_window_background,exported: true,skills: [{entities: [entity.system.home],actions: [action.system.home]}]}],extensionAbilities: [{name: EntryBackupAbility,srcEntry: ./ets/entrybackupability/EntryBackupAbility.ets,type: backup,exported: false,metadata: [{name: ohos.extension.backup,resource: $profile:backup_config}],}],metadata: [{name: client_id,value: 6917564776665168777}]} }2.AGC中开通地图服务 在API管理界面打开地图服务 3.AGC中创建APP 在证书、APP ID和Profile中APP ID中创建之前项目中的App 4.在项目文件中生成密钥请求文件 这个密钥文件比较重要务必妥善保存。 这里的Alias需要记住后面需要用到 保存csr文件 查看生成的csr文件 5.AGC项目中创建证书和设备 新建调试证书并把证书下载到本地。 6.AGC项目中创建Profile 选择对应的调试证书完成Profile的创建 7.把生成的证书和调试文件添加到项目结构中 8.确保当前IDE已经登陆了你的华为账号 地图组件MapComponent 示例代码使用MVVM架构来配置 1、MapComponent组件初始化 提供了两个必填参数mapOptions和mapCallback 属性名称属性类型属性备注是否必填mapOptionsmapCommon.MapOptions初始化参数提供了地图类型、相机位置、地图边界等属性是mapCallbackAsyncCallbackmap.MapComponentController地图主要功能类map.MapComponentController的回调函数提供了地图各种操作的API是 项目初始化框架 import { MapViewModel } from ../ViewModels/MapViewModel; import { MapComponent } from kit.MapKit;Entry ComponentV2 struct FirstPage {Local MapVM: MapViewModel new MapViewModel();aboutToAppear(): void {this.MapVM.Init();}build() {RelativeContainer() {MapComponent({mapOptions: this.MapVM.MapOption,mapCallback: this.MapVM.MapCallBack}).width(100%).height(100%).id(Map)}.height(100%).width(100%)} }VM中的MapOption赋值 this.MapOption {//相机位置position: {target: {latitude: this.LocationLatitude,longitude: this.LocationLongitude},zoom: 10},//地图类型mapType: mapCommon.MapType.STANDARD,//地图最小图层,默认值为2minZoom: 2,//地图最大图层,默认值为20maxZoom: 20,//是否支持旋转手势rotateGesturesEnabled: true,//是否支持滑动手势scrollGesturesEnabled: true,//是否支持缩放手势zoomGesturesEnabled: true,//是否支持倾斜手势tiltGesturesEnabled: true,//是否展示缩放控件zoomControlsEnabled: true,//是否展示定位按钮myLocationControlsEnabled: true,//是否展示指南针控件compassControlsEnabled: false,//是否展示比例尺scaleControlsEnabled: true,//是否一直显示比例尺只有比例尺启用时该参数才生效。alwaysShowScaleEnabled: true };VM中的MapCallBack赋值 this.MapCallBack async (err, mapController) {if (!err) {this.MapController mapController;//启用我的位置图层mapController.setMyLocationEnabled(true);//设置我的位置跟随设备移动mapController.setMyLocationStyle({displayType: mapCommon.MyLocationDisplayType.LOCATE})//启用我的位置按钮mapController.setMyLocationControlsEnabled(true);//地图监听时间管理器this.MapEventManager this.MapController.getEventManager();} }权限申请在VM中封装申请 /*** 所需要得权限*/ MapPermissions: Permissions[] [ohos.permission.INTERNET,ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION]/*** 初始化方法*/ public async Init() {//识别权限是否赋予if (!PermissionUtils.CheckPermissions(this.MapPermissions)) {const perResult: boolean await PermissionUtils.RequestPermissions(this.MapPermissions);if (!perResult) {return;}} }权限方法封装 import { abilityAccessCtrl, bundleManager, common, Permissions } from kit.AbilityKit;/***权限封装类*/ export class PermissionUtils {/*** 检查权限是否授权(完全授权)* param permissionsArr 权限集合* returns true已经全部授权false没有全部授权*/public static CheckPermissions(permissionsArr: Permissions[]): boolean {const atManager abilityAccessCtrl.createAtManager();//获取bundle信息const bundleInfo bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);// 拿到当前应用的tokenID 标识const tokenID bundleInfo.appInfo.accessTokenId//校验应用是否被授予权限let result: boolean true;permissionsArr.forEach((x: Permissions, index: number) {if (!(atManager.checkAccessTokenSync(tokenID, x) abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)) {result false;return;}})return result;}/*** 申请授权首次弹窗申请* param permissionList 权限集合* returns true权限完全加载false有权限没有加载*/public static async RequestPermissions(permissionList: Permissions[]): Promiseboolean {// 程序访问控制管理const atManager abilityAccessCtrl.createAtManager();// 拉起弹框请求用户授权const grantStatus await atManager.requestPermissionsFromUser(getContext(), permissionList)// 获取请求权限的结果const isAuth grantStatus.authResults.every(v v abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)// 返回 Promise 授权结果return isAuth ? Promise.resolve(true) : Promise.reject(false)}/*** 打开系统设置的权限管理页面*/public static OpenPermissionSettingsPage() {// 获取上下文const context getContext() as common.UIAbilityContext// 获取包信息const bundleInfo bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)// 打开系统设置页context.startAbility({bundleName: com.huawei.hmos.settings,abilityName: com.huawei.hmos.settings.MainAbility,uri: application_info_entry,parameters: {// 按照包名打开对应设置页pushParams: bundleInfo.name}})} }项目加载时先进行VM的初始化 aboutToAppear(): void {this.MapVM.Init(); }界面初始化展示 2、地图初始化类MapOptions 属于mapCommon类 常用属性 名称类型可选说明mapTypeMapType是地图类型默认值为MapType.STANDARD异常值按默认值处理。positionCameraPosition否地图相机位置。boundsLatLngBounds是地图展示边界异常值根据无边界处理。说明西南角纬度不能大于东北角纬度。minZoomnumber是地图最小图层有效范围[2, 20]默认值为2异常值按默认值处理。如果设置的最小缩放级别小于2minZoom会取2。maxZoomnumber是地图最大图层有效范围[2, 20]默认值为20异常值按默认值处理。如果设置的最大缩放级别大于20maxZoom会取20。rotateGesturesEnabledboolean是是否支持旋转手势默认值为true异常值按默认值处理。true支持false不支持scrollGesturesEnabledboolean是是否支持滑动手势默认值为true异常值按默认值处理。true支持false不支持zoomGesturesEnabledboolean是是否支持缩放手势默认值为true异常值按默认值处理。true支持false不支持tiltGesturesEnabledboolean是是否支持倾斜手势默认值为true异常值按默认值处理。true支持false不支持zoomControlsEnabledboolean是是否展示缩放控件默认值为true异常值按默认值处理。true展示false不展示myLocationControlsEnabledboolean是是否展示定位按钮默认值为false异常值按默认值处理。true展示false不展示compassControlsEnabledboolean是是否展示指南针控件默认值为true异常值按默认值处理。true展示false不展示scaleControlsEnabledboolean是是否展示比例尺默认值为false异常值按默认值处理。true展示false不展示paddingPadding是设置地图和边界的距离默认值为{ left: 0 , top: 0 , right: 0 , bottom: 0 }。styleIdstring是自定义样式ID。dayNightModeDayNightMode是日间夜间模式默认值为DayNightMode.DAY日间模式alwaysShowScaleEnabledboolean是是否一直显示比例尺只有比例尺启用时该参数才生效。 在VM类中需要在类初始化的时候把MapOption初始化。 constructor() {this.MapOption {//相机位置position: {target: {latitude: this.LocationLatitude,longitude: this.LocationLongitude},zoom: 10},//地图类型mapType: mapCommon.MapType.STANDARD,//地图最小图层,默认值为2minZoom: 2,//地图最大图层,默认值为20maxZoom: 20,//是否支持旋转手势rotateGesturesEnabled: true,//是否支持滑动手势scrollGesturesEnabled: true,//是否支持缩放手势zoomGesturesEnabled: true,//是否支持倾斜手势tiltGesturesEnabled: true,//是否展示缩放控件zoomControlsEnabled: true,//是否展示定位按钮myLocationControlsEnabled: true,//是否展示指南针控件compassControlsEnabled: false,//是否展示比例尺scaleControlsEnabled: true,//是否一直显示比例尺只有比例尺启用时该参数才生效。alwaysShowScaleEnabled: true};this.MapCallBack async (err, mapController) {if (!err) {this.MapController mapController;//启用我的位置图层mapController.setMyLocationEnabled(true);//设置我的位置跟随设备移动mapController.setMyLocationStyle({displayType: mapCommon.MyLocationDisplayType.LOCATE})//启用我的位置按钮mapController.setMyLocationControlsEnabled(true);//地图监听时间管理器this.MapEventManager this.MapController.getEventManager();}} }3、获取手机用户当前位置 通过geoLocationManager的getCurrentLocation方法获取用户的坐标经纬度然后封装成更新用户定位的方法在初始化的时候调用就可以实现手机打开后会直接更新到用户的位置 /*** 更新用户定位*/ public async UpdateLocation() {// 获取用户位置坐标let location: geoLocationManager.Location await geoLocationManager.getCurrentLocation();this.LocationLongitude location.longitude;this.LocationLatitude location.latitude; }完整代码 Page import { MapViewModel } from ../ViewModels/MapViewModel; import { MapComponent } from kit.MapKit;Entry ComponentV2 struct FirstPage {Local MapVM: MapViewModel new MapViewModel();aboutToAppear(): void {this.MapVM.Init();}build() {RelativeContainer() {MapComponent({mapOptions: this.MapVM.MapOption,mapCallback: this.MapVM.MapCallBack}).width(100%).height(100%).id(Map)}.height(100%).width(100%)} }ViewModel import { mapCommon, map, sceneMap } from kit.MapKit; import { AsyncCallback } from kit.BasicServicesKit; import { common, Permissions } from kit.AbilityKit; import { PermissionUtils } from ../Utils/PermissionUtils; import geoLocationManager from ohos.geoLocationManager; import { image } from kit.ImageKit; import { photoAccessHelper } from kit.MediaLibraryKit; import { fileIo } from kit.CoreFileKit; import { MapMarkImage } from ../Utils/MapMarkImage;ObservedV2 export class MapViewModel {/*** 地图初始化参数设置*/MapOption?: mapCommon.MapOptions/*** 地图回调方法*/MapCallBack?: AsyncCallbackmap.MapComponentController/*** 地图控制器*/MapController?: map.MapComponentController/*** 地图监听管理器*/MapEventManager?: map.MapEventManager/*** 地图标记集合*/Markers: map.Marker[] []/*** 所需要得权限*/MapPermissions: Permissions[] [ohos.permission.INTERNET,ohos.permission.LOCATION,ohos.permission.APPROXIMATELY_LOCATION]/*** 当前位置的维度*/public LocationLatitude: number 39.9;/*** 当前位置的经度*/public LocationLongitude: number 116.4;/*** 初始化方法*/public async Init() {//识别权限是否赋予if (!PermissionUtils.CheckPermissions(this.MapPermissions)) {const perResult: boolean await PermissionUtils.RequestPermissions(this.MapPermissions);if (!perResult) {return;}}//标点初始化MapMarkImage.Init(getContext(this));}constructor() {this.UpdateLocation();this.MapOption {//相机位置position: {target: {latitude: this.LocationLatitude,longitude: this.LocationLongitude},zoom: 10},//地图类型mapType: mapCommon.MapType.STANDARD,//地图最小图层,默认值为2minZoom: 2,//地图最大图层,默认值为20maxZoom: 20,//是否支持旋转手势rotateGesturesEnabled: true,//是否支持滑动手势scrollGesturesEnabled: true,//是否支持缩放手势zoomGesturesEnabled: true,//是否支持倾斜手势tiltGesturesEnabled: true,//是否展示缩放控件zoomControlsEnabled: true,//是否展示定位按钮myLocationControlsEnabled: true,//是否展示指南针控件compassControlsEnabled: false,//是否展示比例尺scaleControlsEnabled: true,//是否一直显示比例尺只有比例尺启用时该参数才生效。alwaysShowScaleEnabled: true};this.MapCallBack async (err, mapController) {if (!err) {this.MapController mapController;//启用我的位置图层mapController.setMyLocationEnabled(true);//设置我的位置跟随设备移动mapController.setMyLocationStyle({displayType: mapCommon.MyLocationDisplayType.LOCATE})//启用我的位置按钮mapController.setMyLocationControlsEnabled(true);//地图监听时间管理器this.MapEventManager this.MapController.getEventManager();}}}/*** 更新用户定位*/public async UpdateLocation() {// 获取用户位置坐标let location: geoLocationManager.Location await geoLocationManager.getCurrentLocation();this.LocationLongitude location.longitude;this.LocationLatitude location.latitude;}/*** 移动视图相机* param latitude 维度* param longitude 经度*/public async MoveCamera(latitude: number, longitude: number) {if (this.MapController) {//将视图移动到标点位置let nwPosition map.newCameraPosition({target: {latitude: latitude,longitude: longitude},zoom: 10})// 以动画方式移动地图相机this.MapController.animateCamera(nwPosition, 1000);}} }PermissionUtils import { abilityAccessCtrl, bundleManager, common, Permissions } from kit.AbilityKit;/***权限封装类*/ export class PermissionUtils {/*** 检查权限是否授权(完全授权)* param permissionsArr 权限集合* returns true已经全部授权false没有全部授权*/public static CheckPermissions(permissionsArr: Permissions[]): boolean {const atManager abilityAccessCtrl.createAtManager();//获取bundle信息const bundleInfo bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);// 拿到当前应用的tokenID 标识const tokenID bundleInfo.appInfo.accessTokenId//校验应用是否被授予权限let result: boolean true;permissionsArr.forEach((x: Permissions, index: number) {if (!(atManager.checkAccessTokenSync(tokenID, x) abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)) {result false;return;}})return result;}/*** 申请授权首次弹窗申请* param permissionList 权限集合* returns true权限完全加载false有权限没有加载*/public static async RequestPermissions(permissionList: Permissions[]): Promiseboolean {// 程序访问控制管理const atManager abilityAccessCtrl.createAtManager();// 拉起弹框请求用户授权const grantStatus await atManager.requestPermissionsFromUser(getContext(), permissionList)// 获取请求权限的结果const isAuth grantStatus.authResults.every(v v abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)// 返回 Promise 授权结果return isAuth ? Promise.resolve(true) : Promise.reject(false)}/*** 打开系统设置的权限管理页面*/public static OpenPermissionSettingsPage() {// 获取上下文const context getContext() as common.UIAbilityContext// 获取包信息const bundleInfo bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)// 打开系统设置页context.startAbility({bundleName: com.huawei.hmos.settings,abilityName: com.huawei.hmos.settings.MainAbility,uri: application_info_entry,parameters: {// 按照包名打开对应设置页pushParams: bundleInfo.name}})} }总结 上面的流程是地图组件的初始化的个人理解流程看完这篇希望可以在地图开发上给你提供帮助。
http://www.hkea.cn/news/14549338/

相关文章:

  • 襄阳网站排名优化wordpress自定义类型模板
  • 网站备案好麻烦浙江网站建设哪里有
  • 扶贫网站建设中国建设银行校园招聘网站
  • 合理的网站结构西宁站 网站
  • 专业的营销型网站建设公司广州设计公司前十名
  • 佛山网站排名优化济南网络安全公司
  • 做矢量图的网站有啥创意可以做商务网站的
  • 无锡建设局网站对网站建设功能的情况说明
  • 作网站流程域名系统
  • 网站二级目录做优化南京做网站优化的企业排名
  • wordpress页面不显示百度ocpc如何优化
  • 做ui必要的网站建设公司网站的细节
  • 建设注册管理中心网站天津短视频seo
  • 网站建设印花税公司网站的建设哪家好
  • 网站空间更换网站开发语言哪一种好些
  • 专门做评测的网站有哪些wordpress怎么发布
  • 宣传式网站邢台做移动网站费用
  • 虚拟主机 部署网站吗什么是seo搜索引擎优化
  • 葫芦岛网站制作装修推广平台哪个效果好
  • 自己手机怎么免费做网站网站域名有效期
  • 凡科建站代理平台村网通为每个农村建设了网站
  • wordpress win8 主题下载广州新塘排名seo优化公司
  • 郑州app网站公司wordpress安全狗
  • 企业网站无锡前十强排名家装公司
  • 网站模板超市南昌做网站哪个公司好
  • 各大城市网站哪里做微信小程序是怎么做出来的
  • 个人简历制作网站推荐10网站
  • 信息发布网站模板下载爬虫wordpress
  • 上海营销型网站seo优才网站建设
  • 洛江网站建设报价网站开发工作方向