gpt4 book ai didi

android - OSMDroid - 在 Android API 28 上缩小时默认标记移动

转载 作者:行者123 更新时间:2023-11-29 23:18:52 29 4
gpt4 key购买 nike

我最近开始使用 OSMDroid,但我很难在 Android API 28 的特定地理点获得默认标记。我按照 OSMDroid 的 Github 上的教程编写了如下代码:

    //Making a Mapbox TileSource
MapBoxTileSource mbTest = new MapBoxTileSource("mapbox.streets", ACCESS_TOKEN);
map = (MapView) findViewById(R.id.map);
map.setTileSource(mbTest);

//Setting up map
map.setVisibility(View.VISIBLE);
map.setMultiTouchControls(true);
map.getController().setCenter(new GeoPoint(latitude,longitude));
map.getController().setZoom(14d);

//Create a marker where the user is
Marker positionMarker = new Marker(map);
positionMarker.setDefaultIcon();
positionMarker.setPosition(new GeoPoint(latitude, longitude));
map.getOverlays().add(positionMarker);

我在测试我的应用程序时得到了以下结果(我使用 OSMDroid 绘制了一个多边形,它似乎工作正常):

The marker should be on the corner of the polygon

The marker is moving when zooming out

我在 Android API 22 设备上测试了相同的应用程序,标记工作正常,在缩放级别缩放时位于并停留在正确的位置。

是否有任何方法可以修复或改进我的代码以使标记在 API 28 上工作?

最佳答案

我读了一些关于 OSMDroid 的文档,似乎硬件加速并不总是稳定的。我试图停用它,但它起作用了。

因此,如果您的标记似乎不在正确的位置并且在您放大或缩小时移动,只需在 Android list 中为此 Activity 停用硬件加速:

<activity
android:name=".MapActivity"
android:hardwareAccelerated="false"/>

编辑:我已经进一步使用 OSMDroid,当我为我的标记使用自定义图标时不会发生这个问题,所以这对您的应用来说应该不是什么大问题。

关于android - OSMDroid - 在 Android API 28 上缩小时默认标记移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811451/

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