2015-12-12 12:41:50 -08:00
|
|
|
|
|
|
|
|
package com.mapbox.reactnativemapboxgl;
|
|
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
|
|
import com.facebook.react.bridge.Arguments;
|
|
|
|
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
|
|
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
|
|
|
import com.facebook.react.bridge.ReactMethod;
|
|
|
|
|
import com.facebook.react.bridge.ReadableArray;
|
|
|
|
|
import com.facebook.react.bridge.ReadableMap;
|
|
|
|
|
import com.facebook.react.bridge.WritableMap;
|
|
|
|
|
import com.mapbox.mapboxsdk.geometry.LatLng;
|
|
|
|
|
import com.mapbox.mapboxsdk.views.MapView;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
|
|
|
|
|
|
public class ReactNativeMapboxGLModule extends ReactContextBaseJavaModule {
|
|
|
|
|
|
|
|
|
|
private static final String TAG = ReactNativeMapboxGLModule.class.getSimpleName();
|
|
|
|
|
|
|
|
|
|
private Context context;
|
|
|
|
|
private ReactNativeMapboxGLPackage aPackage;
|
|
|
|
|
|
|
|
|
|
public ReactNativeMapboxGLModule(ReactApplicationContext reactContext) {
|
|
|
|
|
super(reactContext);
|
|
|
|
|
this.context = reactContext;
|
|
|
|
|
Log.d(TAG, "Context " + context);
|
|
|
|
|
Log.d(TAG, "reactContext " + reactContext);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getName() {
|
|
|
|
|
return "Mapbox";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void setDirectionAnimated(int direction) {
|
|
|
|
|
aPackage.getManager().setDirection(aPackage.getManager().getMapView(), direction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void setCenterCoordinateAnimated(double latitude, double longitude) {
|
|
|
|
|
WritableMap location = Arguments.createMap();
|
|
|
|
|
location.putDouble("latitude", latitude);
|
|
|
|
|
location.putDouble("longitude", longitude);
|
|
|
|
|
aPackage.getManager().setCenterCoordinate(aPackage.getManager().getMapView(), location);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void setCenterCoordinateZoomLevelAnimated(double latitude, double longitude, double zoom) {
|
|
|
|
|
WritableMap location = Arguments.createMap();
|
|
|
|
|
location.putDouble("latitude", latitude);
|
|
|
|
|
location.putDouble("longitude", longitude);
|
|
|
|
|
location.putDouble("zoom", zoom);
|
|
|
|
|
aPackage.getManager().setCenterCoordinate(aPackage.getManager().getMapView(), location);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void addAnnotation(ReadableArray value) {
|
|
|
|
|
aPackage.getManager().setAnnotations(aPackage.getManager().getMapView(), value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void setUserTrackingMode(String mode) {
|
|
|
|
|
aPackage.getManager().setMyLocationTrackingMode(aPackage.getManager().getMapView(), mode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void removeAllAnnotations() {
|
|
|
|
|
aPackage.getManager().removeAllAnnotations(aPackage.getManager().getMapView(), true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ReactMethod
|
|
|
|
|
public void setTilt(double pitch) {
|
|
|
|
|
aPackage.getManager().setTilt(aPackage.getManager().getMapView(), pitch);
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-13 17:37:32 -08:00
|
|
|
@ReactMethod
|
|
|
|
|
public void setVisibleCoordinateBounds(double latSW, double lngSW,double latNE, double lngNE, float paddingTop, float paddingRight, float paddingBottom, float paddingLeft) {
|
|
|
|
|
WritableMap info = Arguments.createMap();
|
|
|
|
|
info.putDouble("latSW", latSW);
|
|
|
|
|
info.putDouble("lngSW", lngSW);
|
|
|
|
|
info.putDouble("latNE", latNE);
|
|
|
|
|
info.putDouble("lngNE", lngNE);
|
|
|
|
|
info.putDouble("paddingTop", paddingTop);
|
|
|
|
|
info.putDouble("paddingRight", paddingRight);
|
|
|
|
|
info.putDouble("paddingBottom", paddingBottom);
|
|
|
|
|
info.putDouble("paddingLeft", paddingLeft);
|
|
|
|
|
aPackage.getManager().setVisibleCoordinateBounds(aPackage.getManager().getMapView(), info);
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-12 12:41:50 -08:00
|
|
|
public void setPackage(ReactNativeMapboxGLPackage aPackage) {
|
|
|
|
|
this.aPackage = aPackage;
|
|
|
|
|
}
|
|
|
|
|
}
|