2017-11-10 27 views
0

フラグメント内にGoogleマップビューを実装していますが、すべて動作していますが、マーカーが固定された新しい場所に移動していません。私は長いプレス、リスナー、マップの他の部分をタップ、何も動作しませんでした。マーカーがGoogle MapViewで動かない

のMapView断片

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

    } 
} 

私がどこ今までの地図上のユーザのタップが、多くの労力がまだ全く動いていないの後に移動するためのマーカーにする必要があります。みんな助けてください。それをドラッグするとき

+0

私にあなたのマーカー(locclPosition)の位置を更新するために、あなたのonMarkerDragEnd方法でいくつかのコードを記述する必要があなたのマーカーの動きを作るために、あなたのコードがガードであるのを見ることができます。マーカーを長押ししてドラッグしてみてください。 –

+0

@ YaminiBalakrishnanはこれを試しましたが運はありません – Ritu

答えて

0

あなたは基本的にどこドラッグ終了する(新しい座標)

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

これはマーカを動かすことができますが、私の問題はマップマーカがいつも動かない – Ritu

関連する問題