gpt4 book ai didi

android - 在 Android 上缩小时,Skobbler 注释从 map 上消失

转载 作者:太空狗 更新时间:2023-10-29 14:06:01 24 4
gpt4 key购买 nike

目前,我正在使用类似于以下的代码向 map View 添加注释列表:

// 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);

然而,每当我查看 map 上的注释时,它们都会在我缩小到缩放级别 4.0 以下的任何内容后消失。查看 Annotation 的文档类(以及在代码中确认),我看到默认缩放级别设置为 4,但似乎忽略了我对 .setMinimumZoomLevel 的调用。

是否有人了解正在发生的事情,或者这是否可能是 SDK 中的已知错误?

我在 Android 上使用 Skobbler 2.5。

感谢您在此问题上提供的任何帮助!

最佳答案

基于 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);

有几点需要注意:

  1. .setImagePath() .setImageSize() 在最新的 SDK 中都是弃用的方法,尽管上面的文档中仍然引用了它们。不确定这是否意味着有另一种替代方法可以通过绝对路径方法显示图像,或者他们是否只是逐步淘汰此功能。
  2. 在我的特定示例中,我们使用紫色图钉来显示注释,但该图钉的绝对路径文件名实际上称为 icon_greypin。不过,其他图钉图像文件名似乎已正确命名。

无论如何,在 SDK 更新之前,这都是我的特定问题的解决方案,所以我将其标记为答案,希望它能帮助其他人!感谢 Ando 朝着正确的方向迈出了一步!

关于android - 在 Android 上缩小时,Skobbler 注释从 map 上消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com