HarmonyOS 鸿蒙Next 给地图添加Marker标记的网络图片问题

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 给地图添加Marker标记的网络图片问题 给鸿蒙地图添加Marker标记,为啥icon字段不能传网络图片呀?只要icon传了http网络图片,Marker标记就显示默认图标,而不是显示网络图片的图像

let markerOptions: mapCommon.MarkerOptions = {
  position: {
    latitude: 39.9,
    longitude: 116.4
  },
  rotation: 0,
  visible: true,
  zIndex: 0,
  alpha: 1,
  anchorU: 0.5,
  anchorV: 1,
  clickable: true,
  draggable: true,
  flat: false,
  icon: 'test.png',
  altitude: 100
};

更多关于HarmonyOS 鸿蒙Next 给地图添加Marker标记的网络图片问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

查看文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/map-common-V5#section559041743210

当前仅支持以下方式的图片:

  • 资源相对路径格式:图标存放在resources/rawfile,icon参数传入rawfile文件夹下的相对路径。
  • toDataURL格式(如data:image/png;base64,<图片的Base64字节编码值>)
  • 从5.0.0(12)版本开始,icon属性支持image.PixelMapResource类型。

建议:将网络图片下载放到本地rawfile目录或者media目录下,或者图片转成base64。

更多关于HarmonyOS 鸿蒙Next 给地图添加Marker标记的网络图片问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


姓名: 张三
职位: 软件工程师
简介: 拥有超过10年的软件开发经验,擅长Java和Python编程。

在HarmonyOS鸿蒙Next中,给地图添加Marker标记时,如果使用网络图片,可以通过MarkerOptionsicon方法设置图片资源。首先,确保网络图片的URL有效,然后使用Image组件加载图片。加载完成后,将图片资源传递给MarkerOptionsicon方法。具体步骤如下:

  1. 使用Image组件加载网络图片:

    let image = new Image();
    image.src = 'https://example.com/image.png';
  2. 图片加载完成后,创建MarkerOptions并设置icon

    image.onload = () => {
        let markerOptions = new MarkerOptions()
            .position(new LatLng(39.90923, 116.397428))
            .icon(image);
        map.addMarker(markerOptions);
    };
  3. 确保map对象已初始化,并且地图已加载完成。

通过以上步骤,可以在鸿蒙Next地图上成功添加带有网络图片的Marker标记。

在HarmonyOS鸿蒙Next中,为地图添加带有网络图片的Marker标记,可以通过以下步骤实现:

  1. 获取网络图片:使用Image组件加载网络图片,或通过Http请求获取图片数据。
  2. 创建Marker:使用Marker类创建标记,并设置其位置、标题等属性。
  3. 设置自定义图标:将获取的网络图片设置为Marker的图标,通常需要将图片转换为PixelMap格式。
  4. 添加Marker到地图:通过Map对象的addMarker方法将Marker添加到地图上。

示例代码:

Image image = new Image(context);
image.setPixelMapFromNetwork("https://example.com/image.png");
Marker marker = new Marker(new LatLng(39.9042, 116.4074));
marker.setIcon(image.getPixelMap());
map.addMarker(marker);

确保网络图片加载完成后再设置Marker图标,避免显示异常。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!