You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中HERE MAP SDK绘制MapPolyline报错求助

解决MapPolyline构造方法参数不匹配问题

错误提示明确说明:MapPolyline的构造方法仅接受GeoPolyline和MapPolylineStyle两个参数,但你直接传入了GeoPolyline、线宽(float)、颜色(Color)三个参数,导致参数不匹配。

解决步骤:

  1. 新增MapPolylineStyle类的导入,这个类负责封装线的样式属性
  2. 先通过MapPolylineStyle将线宽和颜色封装为样式对象,再传入MapPolyline的构造方法

修改后的完整代码:

import com.here.sdk.core.GeoCoordinates;
import com.here.sdk.core.GeoPolyline;
import com.here.sdk.core.Color;
import com.here.sdk.core.errors.InstantiationErrorException;
import com.here.sdk.mapviewlite.MapPolyline;
import com.here.sdk.mapviewlite.MapPolylineStyle; // 新增样式类导入

ArrayList<GeoCoordinates> coordinates = new ArrayList<>();
coordinates.add(new GeoCoordinates(52.53032, 13.37409));
coordinates.add(new GeoCoordinates(52.5309, 13.3946));
coordinates.add(new GeoCoordinates(52.53894, 13.39194));
coordinates.add(new GeoCoordinates(52.54014, 13.37958));
GeoPolyline geoPolyline;

try {
    geoPolyline = new GeoPolyline(coordinates);
} catch (InstantiationErrorException e) {
  geoPolyline = null;
}

// 增加空判断,避免geoPolyline为null时触发空指针异常
if (geoPolyline != null) {
    float widthInPixels = 20;
    Color lineColor = new Color((short) 0x00, (short) 0x90, (short) 0x8A, (short) 0xA0);
    // 创建线样式对象,封装线宽和颜色
    MapPolylineStyle polylineStyle = new MapPolylineStyle(widthInPixels, lineColor);
    // 传入GeoPolyline和样式对象创建MapPolyline
    MapPolyline mapPolyline = new MapPolyline(geoPolyline, polylineStyle);
}

额外说明:

  • HERE SDK的MapViewLite版本要求通过MapPolylineStyle统一管理线的样式属性,不能直接将线宽、颜色作为独立参数传入构造方法
  • 新增的空判断可以避免InstantiationErrorException抛出后,geoPolyline为null导致的后续空指针问题

内容的提问来源于stack exchange,提问作者Sampanna Pathak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:52:43