【问题标题】:Marker not moving on Google MapView标记在 Google MapView 上没有移动
【发布时间】:2018-04-23 17:44:11
【问题描述】:

我在片段中实现了谷歌地图视图,一切正常,但标记没有移动到其固定的新位置。我尝试了长按,听众,点击地图的其他部分,没有任何效果。

地图视图片段

public class MapLocation_Fragment extends Fragment implements GoogleMap.OnMarkerDragListener,GoogleMap.OnMarkerClickListener,OnMapReadyCallback {

    MapView mapView;
    GoogleMap google_Map;
    Marker Map_marker;
    LatLng locclPosition;
    double lati,longi;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.maplocation_fragment, container, false);
        mapView = (MapView) view.findViewById(R.id.send_Location_MapView);
        mapView.onCreate(savedInstanceState);
        mapView.onResume();// Needed tog et the map to display immediately

        lati=getArguments().getDouble("lat");
        longi=getArguments().getDouble("longi");
        locclPosition=new LatLng(lati,longi);

        MapsInitializer.initialize(getActivity());
        mapView.getMapAsync(this);
        return view;
    }


    @Override
    public void onResume() {
        super.onResume();
        mapView.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }



    @Override
    public void onMarkerDragStart(Marker marker) {
        Map_marker=marker;

    }

    @Override
    public void onMarkerDrag(Marker marker) {

    }

    @Override
    public void onMarkerDragEnd(Marker marker) {

    }

    @Override
    public boolean onMarkerClick(Marker marker) {
        return false;
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        google_Map = googleMap;
        if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            return;
        }


        google_Map.setOnMarkerClickListener(MapLocation_Fragment.this);
        google_Map.setOnMarkerDragListener(MapLocation_Fragment.this);

        google_Map.setTrafficEnabled(true);
        google_Map.setBuildingsEnabled(true);
        google_Map.setMapType(googleMap.MAP_TYPE_NORMAL); //THIS OPTION WILL SHOW MAP IN SATELLITE FORM
        google_Map.addMarker(new MarkerOptions()
                .position(locclPosition)
                .title("Current Location")
                .draggable(true));
        CameraPosition cameraPosition=new CameraPosition.Builder().target(locclPosition).zoom(19).build();
        google_Map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

    }
}

我需要标记以移动用户在地图上点击的位置,但经过大量努力后它仍然根本没有移动。请大家帮忙。

【问题讨论】:

  • 我可以看到你的代码是 gud。长按您的标记并尝试拖动它。
  • @YaminiBalakrishnan 试过了,但没有成功

标签: android google-maps google-maps-api-3 android-mapview


【解决方案1】:

要让标记在拖动时移动,您需要在 onMarkerDragEnd 方法中编写一些代码,主要是将标记 (locclPosition) 的位置更新到拖动结束的位置(新坐标)

@Override
public void onMarkerDragEnd(Marker marker) {
    locclPosition = marker.getPosition();
}

【讨论】:

  • 当标记可以移动时这将起作用,但我的问题是地图标记总是固定的,它根本不动
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
相关资源
最近更新 更多