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

时间:2017-01-27 15:14:47

标签: android here-api

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

创建图像对象

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;
}

答案 2 :(得分:0)

你必须创建一个 Image 对象

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

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

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

它像这样对我有用。