Skip to content

Commit

Permalink
Add support for animateToViewingAngle and animateToBearing for Android
Browse files Browse the repository at this point in the history
  • Loading branch information
sandinosaso committed Sep 3, 2017
1 parent af3ff1e commit ecfc89b
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,11 @@ public class AirMapManager extends ViewGroupManager<AirMapView> {
private static final String REACT_CLASS = "AIRMap";
private static final int ANIMATE_TO_REGION = 1;
private static final int ANIMATE_TO_COORDINATE = 2;
private static final int FIT_TO_ELEMENTS = 3;
private static final int FIT_TO_SUPPLIED_MARKERS = 4;
private static final int FIT_TO_COORDINATES = 5;
private static final int ANIMATE_TO_VIEWING_ANGLE = 3;
private static final int ANIMATE_TO_BEARING = 4;
private static final int FIT_TO_ELEMENTS = 5;
private static final int FIT_TO_SUPPLIED_MARKERS = 6;
private static final int FIT_TO_COORDINATES = 7;

private final Map<String, Integer> MAP_TYPES = MapBuilder.of(
"standard", GoogleMap.MAP_TYPE_NORMAL,
Expand Down Expand Up @@ -195,6 +197,8 @@ public void receiveCommand(AirMapView view, int commandId, @Nullable ReadableArr
Double lng;
Double lngDelta;
Double latDelta;
float bearing;
float angle;
ReadableMap region;

switch (commandId) {
Expand All @@ -220,6 +224,18 @@ public void receiveCommand(AirMapView view, int commandId, @Nullable ReadableArr
view.animateToCoordinate(new LatLng(lat, lng), duration);
break;

case ANIMATE_TO_VIEWING_ANGLE:
angle = (float)args.getDouble(0);
duration = args.getInt(1);
view.animateToViewingAngle(angle, duration);
break;

case ANIMATE_TO_BEARING:
bearing = (float)args.getDouble(0);
duration = args.getInt(1);
view.animateToBearing(bearing, duration);
break;

case FIT_TO_ELEMENTS:
view.fitToElements(args.getBoolean(0));
break;
Expand Down Expand Up @@ -262,6 +278,8 @@ public Map<String, Integer> getCommandsMap() {
return MapBuilder.of(
"animateToRegion", ANIMATE_TO_REGION,
"animateToCoordinate", ANIMATE_TO_COORDINATE,
"animateToViewingAngle", ANIMATE_TO_VIEWING_ANGLE,
"animateToBearing", ANIMATE_TO_BEARING,
"fitToElements", FIT_TO_ELEMENTS,
"fitToSuppliedMarkers", FIT_TO_SUPPLIED_MARKERS,
"fitToCoordinates", FIT_TO_COORDINATES
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -562,6 +562,26 @@ public void animateToRegion(LatLngBounds bounds, int duration) {
}
}

public void animateToViewingAngle(float angle, int duration) {
if (map != null) {
startMonitoringRegion();
CameraPosition cameraPosition = new CameraPosition.Builder(map.getCameraPosition())
.tilt(angle)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), duration, null);
}
}

public void animateToBearing(float bearing, int duration) {
if (map != null) {
startMonitoringRegion();
CameraPosition cameraPosition = new CameraPosition.Builder(map.getCameraPosition())
.bearing(bearing)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), duration, null);
}
}

public void animateToCoordinate(LatLng coordinate, int duration) {
if (map != null) {
startMonitoringRegion();
Expand Down

0 comments on commit ecfc89b

Please sign in to comment.