使用 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);
它像这样对我有用。
是否有任何 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);
它像这样对我有用。