Android Google地图标记未立即更新

时间:2016-03-08 06:52:07

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

我有一个用户可以选择位置的应用。地图首先以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是我在这里尝试更新的单一全局标记变量。

边界巡逻方法中的日志每次都会触发 - 它返回一个地址并记录它。但是,Title和Snippet不会更新 - 或者,它们只是一个事件背后。

我完全难过了!

1 个答案:

答案 0 :(得分:2)

解决了......

我每次都没有打电话给if(ajax){ User user = userTemplate.getUser(form.getCreator_id()); int isPremium = user.getPremium(); if ( isPremium == 1 ){ Map<String,String> resultMap = new HashMap<String,String>(); response.setHeader("Access-Control-Allow-Headers", "*"); response.addHeader("Access-Control-Allow-Origin", "*"); resultMap.put("result", "success"); return new Gson().toJson(resultMap); }else{ return "redirect:/f/redirectedUrl?url="+form.getWeb_page(); } } - 我不认为我必须这样做,因为这是一个全局变量,我在设置时调用它,但那就是问题!