目前,我正在向mapview添加注释列表,其代码类似于以下内容:
// Add to map view
SKAnnotation annotation = new SKAnnotation(i++);
annotation.getLocation().setLongitude(result.longitude);
annotation.getLocation().setLatitude(result.latitude);
annotation.setMininumZoomLevel(1);
annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_PURPLE);
mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);
然而,每当我在地图上查看注释时,在我缩小到缩放级别4.0以下的任何内容后,它们就会消失。查看Annotation类的文档(以及代码中的确认),我发现默认缩放级别设置为4,但似乎忽略了对.setMinimumZoomLevel
的调用。 / p>
有没有人能够了解正在发生的事情,或者这可能是SDK中的已知错误?
我在Android上使用Skobbler 2.5。
感谢您对此事的任何帮助!
答案 0 :(得分:1)
根据Ando对原始问题的评论并参考文档here,我更新了代码以使用他描述的解决方法,允许注释显示为缩放级别2.
原始代码:
SKAnnotation annotation = new SKAnnotation(i++);
annotation.getLocation().setLongitude(result.longitude);
annotation.getLocation().setLatitude(result.latitude);
annotation.setMininumZoomLevel(1); // Note: this does not work
annotation.setAnnotationType(SKAnnotation.SK_ANNOTATION_TYPE_PURPLE);
mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);
更新的代码:
SKAnnotation annotation = new SKAnnotation(i++);
annotation.getLocation().setLongitude(result.longitude);
annotation.getLocation().setLatitude(result.latitude);
annotation.setMininumZoomLevel(2);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.densityDpi < DisplayMetrics.DENSITY_HIGH) {
annotation.setImagePath(SKMaps.getInstance().getMapInitSettings().
getMapResourcesPath() + "/.Common/icon_greypin@2x.png");
// set the size of the image in pixel
annotation.setImageSize(128);
} else {
annotation.setImagePath(SKMaps.getInstance().getMapInitSettings().
getMapResourcesPath()+ "/.Common/icon_greypin@3x.png");
// set the size of the image in pixels
annotation.setImageSize(256);
}
mapView.addAnnotation(annotation, SKAnimationSettings.ANIMATION_POP_OUT);
有几点需要注意:
.setImagePath()
.setImageSize()
icon_greypin
。看起来其他图钉图像文件名称的名称恰如其分。无论如何,在更新SDK之前,这可以解决我的特定问题,因此我将其标记为答案,我希望它可以帮助其他人!感谢Ando迈出正确方向的一步!