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