예제 #1
0
  private void enableUserLocation(boolean enable) {
    if (mLocationProvider == null) {
      mLocationProvider =
          new UserLocationProvider(
              new GpsLocationProvider(getActivity().getApplicationContext()), mMapView);
      mLocationProvider.setDrawAccuracyEnabled(true);
      if (mLocationListener != null) {
        mLocationProvider.setLocationListener(mLocationListener);
      }

      mMapView.addOverlay(mLocationProvider);
    }

    if (enable) {
      mLocationProvider.enableMyLocation();

      if (mUserLocationTrackingMode == TrackingMode.NONE) {
        mLocationProvider.disableFollowLocation();
      } else {
        mLocationProvider.enableFollowLocation();
      }
    } else {
      mLocationProvider.disableFollowLocation();
      mLocationProvider.disableMyLocation();
    }
  }
예제 #2
0
  private void setAutoPanMode(AutoPanMode current, AutoPanMode update) {
    if (mPanMode.compareAndSet(current, update)) {
      switch (current) {
        case DRONE:
          mDrone.removeDroneListener(this);
          break;

        case USER:
          mUserLocationTrackingMode = TrackingMode.NONE;
          if (mLocationProvider != null) {
            mLocationProvider.disableFollowLocation();
          }
          break;

        case DISABLED:
        default:
          break;
      }

      switch (update) {
        case DRONE:
          mDrone.addDroneListener(this);
          break;

        case USER:
          mUserLocationTrackingMode = TrackingMode.FOLLOW;
          if (mLocationProvider != null) {
            mLocationProvider.enableFollowLocation();
          }
          break;

        case DISABLED:
        default:
          break;
      }
    }
  }