2017-11-10 16 views
0

조각 내 Google지도보기를 구현했지만 모든 것이 작동하지만 마커가 고정 된 새 위치로 이동하지 않습니다. 나는 긴 언론, 청취자,지도의 다른 부분을 두 드렸는데 아무 것도 작동하지 않았습니다.마커가 Google 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

I에 마커 (locclPosition)의 위치를 ​​업데이트하려면 onMarkerDragEnd 방법에 약간의 코드를 작성해야 귀하의 마커 이동을하려면 당신의 코드가 깔끔하다는 것을 알 수 있습니다. 마커를 길게 누르고 드래그하십시오. –

+0

@ YaminiBalakrishnan이 행운을 시험해 보았습니다 – Ritu

답변

0

는 기본적으로 위치를 드래그 끝 (새 좌표)

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

마커를 움직일 수 있지만 내 문제는지도 마커가 항상 움직이지 않고 고정되어있을 때 작동합니다 – Ritu