HarmonyOS 鸿蒙Next中高德地图功能使用出错

HarmonyOS 鸿蒙Next中高德地图功能使用出错 我们的项目里有个页面使用了高德地图SDK,并且使用了点标记,在真机运行测试的时候发现第一次进入该页面时显示地图但是地图相机没有移动到对应的地方,点标记也没有,只有第二次进入才可以达到效果。使用debug测试之后发现MapViewManager.getInstance().registerMapViewCreatedCallback()这个函数第一次进入时没有执行回调函数,第二次进入时才继续执行回调函数。

2 回复

// 注册地图 MapViewManager.getInstance().registerMapViewCreatedCallback((mapview?: MapView, mapViewName?: string) => { console.info(‘高德地图渲染:’ + mapViewName) if (!mapview) { return; } YTLog.error(‘高德地图’, ‘开始渲染地图’) let mapView = mapview; mapView.onCreate() mapView.getMapAsync((map) => { this.aMap = map let options: MarkerOptions | undefined = AppStorage.get(AppStorageKeyTag.nearBranch) let latLng: LatLng = new LatLng(32.027597688958835, 118.78538131713869) if (options) { latLng = options.getPosition() } this.aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 9)); // 绘制标记 this.branchListinfo.forEach((item: branchinfo) => { YTLog.error(‘高德地图’, ‘添加单个标点’ + JSON.stringify(item)) let options: MarkerOptions = new MarkerOptions(); options.setPosition(new LatLng(Number(item.latitude), Number(item.longitude))); options.setDraggable(false) options.setTitle(item.branchName) options.setSnippet(‘点击预约’) this.markerOptionsList.add(options) }) console.info(‘高德地图’, ‘添加标点’) this.aMap.addMarkers(this.markerOptionsList, false); // 标记点点击触发事件 this.aMap.setOnMarkerClickListener((marker: Marker): boolean => { // marker 被点击的 marker 对象 // 返回true表示已处理点击事件,不再继续传递;返回false则继续传递 marker.showInfoWindow() YTToast.showShort(‘点击跳转’) return true }) }) })

更多关于HarmonyOS 鸿蒙Next中高德地图功能使用出错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用高德地图功能出错,可能原因包括:

  1. 应用未获取必要权限,如定位、存储等;

  2. 网络连接不稳定或中断;

  3. 高德地图SDK版本与系统不兼容;

  4. 系统或应用缓存问题。

建议检查权限设置、网络状态,更新高德地图至最新版本,或清除缓存后重试。如问题持续,可联系高德地图客服或鸿蒙技术支持。

回到顶部