使用 HERE 地图自定义当前位置图标

Customize the Current Location Icon with HERE Maps

是否有任何 API 可用于更改导航期间使用的当前位置图标的外观。我能够使用自定义地图标记修改它并使用位置管理器回调更新位置,但我想知道是否有更简单的方法。此外,我也不清楚如何更改图标的标题(我用箭头替换了圆圈)。我希望能够在演习期间适当地旋转箭头。看起来好像 HERE 应用程序在做这种事情,所以我想知道这些 API 中是否有任何一个在 SDK 中公开。

通常,我们鼓励开发人员使用 MapMarker 或 MapLocalModel API 构建自己的位置指示器。自定义选项太多,我们无法制作一个通用的位置指示器:)

请创建地图对象并根据应用程序的需要自定义行为。

创建图像对象

try
{
    Image image = new Image();
    Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.store_pin);
    Bitmap scaledBitmap = Utility.scaleDown(icon, 150, true);
    image.setBitmap(scaledBitmap);
    customMarker = new MapMarker(new GeoCoordinate(destLat, destLng, 0.0), image);
    map.addMapObject(customMarker);
}
catch(IOException e) {
    e.printStackTrace();
}

你的指标

    mapFragment.getPositionIndicator().setVisible(true);
    mapFragment.getPositionIndicator().setMarker(image);

调整位图(标记图像)的大小

public static Bitmap scaleDown(Bitmap realImage, float maxImageSize, boolean filter) {
    float ratio = Math.min((float) maxImageSize / realImage.getWidth(),(float) maxImageSize / realImage.getHeight());
    int width = Math.round((float) ratio * realImage.getWidth());
    int height = Math.round((float) ratio * realImage.getHeight());
    Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width, height, filter);
    return newBitmap;
}

您必须创建一个图像对象

Image img = new Image();
try {
   img.setImageResource(R.drawable.marker);
} catch (IOException e) {
   e.printStackTrace();
}

然后您必须确保添加这两行:

mapFragment.getPositionIndicator().setVisible(true);
mapFragment.getPositionIndicator ().setMarker (img);

它像这样对我有用。