Android 谷歌地图标记未立即更新

标签 android google-maps google-maps-android-api-2

我有一个应用程序,用户可以在其中选择位置。 map 首先以 GPS 位置为中心,但用户也可以拖动标记或在搜索栏中输入内容。这些都有效,但我发现一个奇怪的问题,即标记没有立即更新。

正在更新,仅落后一步...

这是我的 onMarkerDragEnd 代码:

    @Override
    public void onMarkerDragEnd(Marker marker) {
        //mLocMarker = marker; // this has no effect
        mLocMarker.setIcon(BitmapDescriptorFactory.defaultMarker());
        mLocMarker.showInfoWindow();

        LatLng mPos = mLocMarker.getPosition();

        LatLng[] coordinates = new LatLng[kmlCoordinates.size()];
        coordinates = kmlCoordinates.toArray(coordinates);
        if (BorderPatrol.PointIsInRegion(mPos, coordinates)) {
            try {
                mAddress = getNearestStreetAddress(mPos);
                markerTitle = mAddress.getAddressLine(0);
                Log.d(TAG, "DRAG: Valid Address is " + mAddress.getAddressLine(0));
                isValidAddress = true;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        else {
            markerTitle   = "Out of Delivery Zone";
            markerSnippet = "Hold and drag to change location";
            Log.d(TAG, "Out of Delivery Zone: " + mPos);
            isValidAddress = false;
        }
        mLocMarker.setTitle(markerTitle);
        mLocMarker.setSnippet(markerSnippet);

        float mZoom = map.getCameraPosition().zoom;
        CameraUpdate mLoc = CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder().target(mPos).zoom(mZoom).build());
        map.moveCamera(mLoc);
    }

因此,mLocMarker 是我尝试在此处更新的单个全局标记变量。

边境巡逻方法中的日志每次都会触发 - 它返回一个地址并记录它。然而,标题和 fragment 并没有更新,或者说,它们总是落后于一个事件。

我完全被难住了!

最佳答案

解决了...

我并不是每次都调用 mLocMarker.showInfoWindow() - 我认为我不必这样做,因为这是一个全局变量,我在设置时调用它,但这就是问题所在!

关于Android 谷歌地图标记未立即更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35860858/

相关文章:

android - Google Maps.on camera Change Listener 永远不会被调用

javascript - react-native-maps:如何在不重新渲染整个 map 的情况下添加标记?

android - Jetpack Compose 列中的 fillViewPort 行为

javascript - 具有非英语城市名称的零结果的 Google Maps Geocoder javascript API

css - Google map 信息框关闭按钮

javascript - 带有县覆盖的谷歌地图?

android - MNC 使用 Google map 的权限问题

java - 无法在 Fragment 内的 onResume() 方法中检索 View

java - 让代码在 x 秒后执行 - Java、Android

android - Android 中操作/标签栏的正确模式