Java 类com.google.android.gms.maps.LocationSource 实例源码

项目:RxGoogleMapsBinding    文件:LocationChangeOnSubscribe.java   
@Override public void call(final Subscriber<? super Location> subscriber) {
  MainThreadSubscription.verifyMainThread();

  LocationSource.OnLocationChangedListener listener =
      new LocationSource.OnLocationChangedListener() {
        @Override public void onLocationChanged(Location location) {
          if (!subscriber.isUnsubscribed()) {
            subscriber.onNext(location);
          }
        }
      };

  locationSource.activate(listener);

  subscriber.add(new MainThreadSubscription() {
    @Override protected void onUnsubscribe() {
      locationSource.deactivate();
    }
  });
}
项目:referendum_1o_android    文件:DelegatingGoogleMap.java   
@Override
public void setLocationSource(LocationSource locationSource) {
    real.setLocationSource(locationSource);
}
项目:referendum_1o_android    文件:GoogleMapWrapper.java   
@Override
public final void setLocationSource(LocationSource source) {
    map.setLocationSource(source);
}
项目:RxGoogleMapsBinding    文件:LocationChangeOnSubscribe.java   
LocationChangeOnSubscribe(LocationSource locationSource) {
  this.locationSource = locationSource;
}
项目:mytracks    文件:MyTracksMapFragment.java   
@Override
public void onActivityCreated(Bundle savedInstanceState) {
  super.onActivityCreated(savedInstanceState);
  if (savedInstanceState != null) {
    keepCurrentLocationVisible = savedInstanceState.getBoolean(
        KEEP_CURRENT_LOCATION_VISIBLE_KEY, false);
    if (keepCurrentLocationVisible) {
      Location location = (Location) savedInstanceState.getParcelable(CURRENT_LOCATION_KEY);
      if (location != null) {
        setCurrentLocation(location);
      }
    }
  }

  /*
   * At this point, after onCreateView, getMap will not return null and we can
   * initialize googleMap. However, onActivityCreated can be called multiple
   * times, e.g., when the user switches tabs. With
   * GoogleMapOptions.useViewLifecycleInFragment == false, googleMap lifecycle
   * is tied to the fragment lifecycle and the same googleMap object is
   * returned in getMap. Thus we only need to initialize googleMap once, when
   * it is null.
   */
  if (googleMap == null) {
    googleMap = getMap();
    googleMap.setMyLocationEnabled(true);

    /*
     * My Tracks needs to handle the onClick event when the my location button
     * is clicked. Currently, the API doesn't allow handling onClick event,
     * thus hiding the default my location button and providing our own.
     */
    googleMap.getUiSettings().setMyLocationButtonEnabled(false);
    googleMap.setIndoorEnabled(true);
    googleMap.setOnMarkerClickListener(new OnMarkerClickListener() {

        @Override
      public boolean onMarkerClick(Marker marker) {
        if (isResumed()) {
          String title = marker.getTitle();
          if (title != null && title.length() > 0) {
            long id = Long.valueOf(title);
            Context context = getActivity();
            Intent intent = IntentUtils.newIntent(context, MarkerDetailActivity.class)
                .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, id);
            context.startActivity(intent);
          }
        }
        return true;
      }
    });
    googleMap.setLocationSource(new LocationSource() {

        @Override
      public void activate(OnLocationChangedListener listener) {
        onLocationChangedListener = listener;
      }

        @Override
      public void deactivate() {
        onLocationChangedListener = null;
      }
    });
    googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {

        @Override
      public void onCameraChange(CameraPosition cameraPosition) {
        if (isResumed() && keepCurrentLocationVisible && currentLocation != null
            && !isLocationVisible(currentLocation)) {
          keepCurrentLocationVisible = false;
        }
      }
    });
  }
}
项目:HereAStory-Android    文件:DelegatingGoogleMap.java   
@Override
public void setLocationSource(LocationSource locationSource) {
    real.setLocationSource(locationSource);
}
项目:HereAStory-Android    文件:GoogleMapWrapper.java   
@Override
public final void setLocationSource(LocationSource source) {
    map.setLocationSource(source);
}
项目:mtransit-for-android    文件:DelegatingGoogleMap.java   
@Override
public void setLocationSource(LocationSource locationSource) {
    real.setLocationSource(locationSource);
}
项目:mtransit-for-android    文件:GoogleMapWrapper.java   
@Override
public final void setLocationSource(LocationSource source) {
    map.setLocationSource(source);
}
项目:RxGoogleMapsBinding    文件:RxGoogleMaps.java   
/**
 * Create an observable which emits on {@code source} location change events.
 * <p>
 * <em>Warning:</em> The created observable keeps a strong reference to {@code source}.
 * Unsubscribe to free this reference.
 * </p>
 */
@CheckResult @NonNull
public static Observable<Location> locationSourceLocationChanges(@NonNull LocationSource source) {
  checkNotNull(source, "source == null");
  return Observable.create(new LocationChangeOnSubscribe(source));
}
项目:referendum_1o_android    文件:GoogleMap.java   
void setLocationSource(LocationSource locationSource);
项目:referendum_1o_android    文件:IGoogleMap.java   
void setLocationSource(LocationSource source);
项目:HereAStory-Android    文件:GoogleMap.java   
void setLocationSource(LocationSource locationSource);
项目:HereAStory-Android    文件:IGoogleMap.java   
void setLocationSource(LocationSource source);
项目:mtransit-for-android    文件:ExtendedGoogleMap.java   
void setLocationSource(LocationSource locationSource);
项目:mtransit-for-android    文件:IGoogleMap.java   
void setLocationSource(LocationSource source);