react-native-maps 1.7.1 → 2.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +34 -11
  2. package/android/build.gradle +41 -10
  3. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  4. package/android/src/main/java/com/rnmaps/maps/MapCalloutManager.java +1 -1
  5. package/android/src/main/java/com/rnmaps/maps/MapCircleManager.java +1 -1
  6. package/android/src/main/java/com/rnmaps/maps/MapGradientPolyline.java +4 -4
  7. package/android/src/main/java/com/rnmaps/maps/MapGradientPolylineManager.java +1 -1
  8. package/android/src/main/java/com/rnmaps/maps/MapHeatmapManager.java +1 -1
  9. package/android/src/main/java/com/rnmaps/maps/MapLiteManager.java +1 -1
  10. package/android/src/main/java/com/rnmaps/maps/MapLocalTile.java +4 -4
  11. package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +1 -1
  12. package/android/src/main/java/com/rnmaps/maps/MapManager.java +6 -63
  13. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +2 -2
  14. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +10 -27
  15. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +1 -1
  16. package/android/src/main/java/com/rnmaps/maps/MapPolygonManager.java +1 -1
  17. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -1
  18. package/android/src/main/java/com/rnmaps/maps/MapTileProvider.java +7 -5
  19. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +1 -1
  20. package/android/src/main/java/com/rnmaps/maps/MapView.java +60 -149
  21. package/android/src/main/java/com/rnmaps/maps/MapViewModule.java +598 -0
  22. package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +6 -6
  23. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +1 -1
  24. package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +1 -1
  25. package/android/src/main/java/com/rnmaps/maps/SizeReportingShadowNode.java +1 -1
  26. package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.m +8 -0
  27. package/ios/{AirGoogleMaps/AIRDummyView.h → GoogleMaps/RNMDummyView.h} +3 -3
  28. package/ios/{AirGoogleMaps/AIRDummyView.m → GoogleMaps/RNMDummyView.m} +4 -4
  29. package/ios/{AirGoogleMaps/AIRGMSMarker.h → GoogleMaps/RNMGMSMarker.h} +6 -6
  30. package/ios/{AirGoogleMaps/AIRGMSMarker.m → GoogleMaps/RNMGMSMarker.m} +4 -4
  31. package/ios/{AirGoogleMaps/AIRGMSPolygon.h → GoogleMaps/RNMGMSPolygon.h} +4 -4
  32. package/ios/{AirGoogleMaps/AIRGMSPolygon.m → GoogleMaps/RNMGMSPolygon.m} +4 -4
  33. package/ios/{AirGoogleMaps/AIRGMSPolyline.h → GoogleMaps/RNMGMSPolyline.h} +4 -4
  34. package/ios/{AirGoogleMaps/AIRGMSPolyline.m → GoogleMaps/RNMGMSPolyline.m} +4 -4
  35. package/ios/{AirGoogleMaps/AIRGoogleMap.h → GoogleMaps/RNMGoogleMap.h} +5 -5
  36. package/ios/{AirGoogleMaps/AIRGoogleMap.m → GoogleMaps/RNMGoogleMap.m} +81 -77
  37. package/ios/{AirGoogleMaps/AIRGoogleMapCallout.h → GoogleMaps/RNMGoogleMapCallout.h} +3 -3
  38. package/ios/{AirGoogleMaps/AIRGoogleMapCallout.m → GoogleMaps/RNMGoogleMapCallout.m} +4 -4
  39. package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.h → GoogleMaps/RNMGoogleMapCalloutManager.h} +3 -3
  40. package/ios/{AirGoogleMaps/AIRGoogleMapCalloutManager.m → GoogleMaps/RNMGoogleMapCalloutManager.m} +7 -7
  41. package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.h → GoogleMaps/RNMGoogleMapCalloutSubview.h} +3 -3
  42. package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubview.m → GoogleMaps/RNMGoogleMapCalloutSubview.m} +4 -4
  43. package/ios/{AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.h → GoogleMaps/RNMGoogleMapCalloutSubviewManager.h} +3 -3
  44. package/ios/GoogleMaps/RNMGoogleMapCalloutSubviewManager.m +28 -0
  45. package/ios/{AirGoogleMaps/AIRGoogleMapCircle.h → GoogleMaps/RNMGoogleMapCircle.h} +3 -3
  46. package/ios/{AirGoogleMaps/AIRGoogleMapCircle.m → GoogleMaps/RNMGoogleMapCircle.m} +3 -3
  47. package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.h → GoogleMaps/RNMGoogleMapCircleManager.h} +2 -2
  48. package/ios/{AirGoogleMaps/AIRGoogleMapCircleManager.m → GoogleMaps/RNMGoogleMapCircleManager.m} +7 -7
  49. package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.h → GoogleMaps/RNMGoogleMapHeatmap.h} +3 -3
  50. package/ios/{AirGoogleMaps/AIRGoogleMapHeatmap.m → GoogleMaps/RNMGoogleMapHeatmap.m} +4 -4
  51. package/ios/GoogleMaps/RNMGoogleMapHeatmapManager.h +11 -0
  52. package/ios/{AirGoogleMaps/AIRGoogleMapHeatmapManager.m → GoogleMaps/RNMGoogleMapHeatmapManager.m} +9 -9
  53. package/ios/{AirGoogleMaps/AIRGoogleMapManager.h → GoogleMaps/RNMGoogleMapManager.h} +3 -3
  54. package/ios/GoogleMaps/RNMGoogleMapManager.m +256 -0
  55. package/ios/{AirGoogleMaps/AIRGoogleMapMarker.h → GoogleMaps/RNMGoogleMapMarker.h} +15 -15
  56. package/ios/{AirGoogleMaps/AIRGoogleMapMarker.m → GoogleMaps/RNMGoogleMapMarker.m} +23 -23
  57. package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.h → GoogleMaps/RNMGoogleMapMarkerManager.h} +3 -3
  58. package/ios/{AirGoogleMaps/AIRGoogleMapMarkerManager.m → GoogleMaps/RNMGoogleMapMarkerManager.m} +20 -20
  59. package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.h → GoogleMaps/RNMGoogleMapOverlay.h} +4 -4
  60. package/ios/{AirGoogleMaps/AIRGoogleMapOverlay.m → GoogleMaps/RNMGoogleMapOverlay.m} +4 -4
  61. package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.h → GoogleMaps/RNMGoogleMapOverlayManager.h} +2 -2
  62. package/ios/{AirGoogleMaps/AIRGoogleMapOverlayManager.m → GoogleMaps/RNMGoogleMapOverlayManager.m} +6 -6
  63. package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.h → GoogleMaps/RNMGoogleMapPolygon.h} +7 -7
  64. package/ios/{AirGoogleMaps/AIRGoogleMapPolygon.m → GoogleMaps/RNMGoogleMapPolygon.m} +7 -7
  65. package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.h → GoogleMaps/RNMGoogleMapPolygonManager.h} +2 -2
  66. package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.m → GoogleMaps/RNMGoogleMapPolygonManager.m} +10 -10
  67. package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.h → GoogleMaps/RNMGoogleMapPolyline.h} +7 -7
  68. package/ios/{AirGoogleMaps/AIRGoogleMapPolyline.m → GoogleMaps/RNMGoogleMapPolyline.m} +9 -9
  69. package/ios/{AirGoogleMaps/AIRGoogleMapPolygonManager.h → GoogleMaps/RNMGoogleMapPolylineManager.h} +2 -2
  70. package/ios/{AirGoogleMaps/AIRGoogleMapPolylineManager.m → GoogleMaps/RNMGoogleMapPolylineManager.m} +9 -9
  71. package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.h → GoogleMaps/RNMGoogleMapUrlTile.h} +2 -2
  72. package/ios/{AirGoogleMaps/AIRGoogleMapUrlTile.m → GoogleMaps/RNMGoogleMapUrlTile.m} +3 -3
  73. package/ios/{AirGoogleMaps/AIRGoogleMapUrlTileManager.h → GoogleMaps/RNMGoogleMapUrlTileManager.h} +2 -2
  74. package/ios/{AirGoogleMaps/AIRGoogleMapURLTileManager.m → GoogleMaps/RNMGoogleMapUrlTileManager.m} +7 -7
  75. package/ios/GoogleMaps/RNMGoogleMapViewModule.h +5 -0
  76. package/ios/GoogleMaps/RNMGoogleMapViewModule.m +380 -0
  77. package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.h → GoogleMaps/RNMGoogleMapWMSTile.h} +3 -3
  78. package/ios/{AirGoogleMaps/AIRGoogleMapWMSTile.m → GoogleMaps/RNMGoogleMapWMSTile.m} +4 -4
  79. package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.h → GoogleMaps/RNMGoogleMapWMSTileManager.h} +3 -3
  80. package/ios/{AirGoogleMaps/AIRGoogleMapWMSTileManager.m → GoogleMaps/RNMGoogleMapWMSTileManager.m} +8 -8
  81. package/ios/{AirMaps → Maps}/Callout/SMCalloutView.h +9 -8
  82. package/ios/{AirMaps → Maps}/Callout/SMCalloutView.m +118 -118
  83. package/ios/{AirMaps/RCTConvert+AirMap.h → Maps/RCTConvert+RNMMap.h} +1 -1
  84. package/ios/{AirMaps/RCTConvert+AirMap.m → Maps/RCTConvert+RNMMap.m} +25 -8
  85. package/ios/{AirMaps/AIRMap.h → Maps/RNMMap.h} +8 -8
  86. package/ios/{AirMaps/AIRMap.m → Maps/RNMMap.m} +60 -56
  87. package/ios/{AirMaps/AIRMapCallout.h → Maps/RNMMapCallout.h} +1 -1
  88. package/ios/{AirMaps/AIRMapCallout.m → Maps/RNMMapCallout.m} +2 -2
  89. package/ios/{AirMaps/AIRMapCircleManager.h → Maps/RNMMapCalloutManager.h} +2 -2
  90. package/ios/{AirMaps/AIRMapCalloutManager.m → Maps/RNMMapCalloutManager.m} +7 -7
  91. package/ios/{AirMaps/AIRMapCalloutSubview.h → Maps/RNMMapCalloutSubview.h} +3 -3
  92. package/ios/{AirMaps/AIRMapCalloutSubview.m → Maps/RNMMapCalloutSubview.m} +4 -4
  93. package/ios/Maps/RNMMapCalloutSubviewManager.h +14 -0
  94. package/ios/Maps/RNMMapCalloutSubviewManager.m +24 -0
  95. package/ios/{AirMaps/AIRMapCircle.h → Maps/RNMMapCircle.h} +5 -5
  96. package/ios/{AirMaps/AIRMapCircle.m → Maps/RNMMapCircle.m} +3 -3
  97. package/ios/{AirMaps/AIRMapCalloutManager.h → Maps/RNMMapCircleManager.h} +2 -2
  98. package/ios/{AirMaps/AIRMapCircleManager.m → Maps/RNMMapCircleManager.m} +7 -7
  99. package/ios/{AirMaps/AIRMapCoordinate.h → Maps/RNMMapCoordinate.h} +2 -2
  100. package/ios/{AirMaps/AIRMapCoordinate.m → Maps/RNMMapCoordinate.m} +3 -3
  101. package/ios/{AirMaps/AIRMapLocalTile.h → Maps/RNMMapLocalTile.h} +7 -7
  102. package/ios/{AirMaps/AIRMapLocalTile.m → Maps/RNMMapLocalTile.m} +6 -6
  103. package/ios/{AirMaps/AIRMapLocalTileManager.h → Maps/RNMMapLocalTileManager.h} +3 -3
  104. package/ios/{AirMaps/AIRMapLocalTileManager.m → Maps/RNMMapLocalTileManager.m} +9 -9
  105. package/ios/{AirMaps/AIRMapLocalTileOverlay.h → Maps/RNMMapLocalTileOverlay.h} +2 -2
  106. package/ios/{AirMaps/AIRMapLocalTileOverlay.m → Maps/RNMMapLocalTileOverlay.m} +5 -5
  107. package/ios/{AirMaps/AIRMapManager.h → Maps/RNMMapManager.h} +6 -6
  108. package/ios/Maps/RNMMapManager.m +854 -0
  109. package/ios/{AirMaps/AIRMapMarker.h → Maps/RNMMapMarker.h} +8 -8
  110. package/ios/{AirMaps/AIRMapMarker.m → Maps/RNMMapMarker.m} +22 -25
  111. package/ios/{AirMaps/AIRMapMarkerManager.h → Maps/RNMMapMarkerManager.h} +1 -1
  112. package/ios/{AirMaps/AIRMapMarkerManager.m → Maps/RNMMapMarkerManager.m} +14 -14
  113. package/ios/{AirMaps/AIRMapOverlay.h → Maps/RNMMapOverlay.h} +7 -7
  114. package/ios/{AirMaps/AIRMapOverlay.m → Maps/RNMMapOverlay.m} +4 -4
  115. package/ios/Maps/RNMMapOverlayManager.h +5 -0
  116. package/ios/{AirMaps/AIRMapOverlayManager.m → Maps/RNMMapOverlayManager.m} +6 -6
  117. package/ios/{AirMaps/AIRMapOverlayRenderer.h → Maps/RNMMapOverlayRenderer.h} +1 -1
  118. package/ios/{AirMaps/AIRMapOverlayRenderer.m → Maps/RNMMapOverlayRenderer.m} +5 -5
  119. package/ios/{AirMaps/AIRMapPolygon.h → Maps/RNMMapPolygon.h} +7 -7
  120. package/ios/{AirMaps/AIRMapPolygon.m → Maps/RNMMapPolygon.m} +4 -4
  121. package/ios/{AirMaps/AIRMapPolygonManager.h → Maps/RNMMapPolygonManager.h} +2 -2
  122. package/ios/{AirMaps/AIRMapPolygonManager.m → Maps/RNMMapPolygonManager.m} +10 -10
  123. package/ios/{AirMaps/AIRMapPolyline.h → Maps/RNMMapPolyline.h} +6 -6
  124. package/ios/{AirMaps/AIRMapPolyline.m → Maps/RNMMapPolyline.m} +11 -11
  125. package/ios/{AirMaps/AIRMapPolylineManager.h → Maps/RNMMapPolylineManager.h} +2 -2
  126. package/ios/{AirMaps/AIRMapPolylineManager.m → Maps/RNMMapPolylineManager.m} +9 -9
  127. package/ios/{AirMaps/AIRMapPolylineRenderer.h → Maps/RNMMapPolylineRenderer.h} +2 -2
  128. package/ios/{AirMaps/AIRMapPolylineRenderer.m → Maps/RNMMapPolylineRenderer.m} +10 -10
  129. package/ios/{AirMaps/AIRMapSnapshot.h → Maps/RNMMapSnapshot.h} +6 -6
  130. package/ios/{AirMaps/AIRMapUrlTile.h → Maps/RNMMapUrlTile.h} +18 -18
  131. package/ios/{AirMaps/AIRMapUrlTile.m → Maps/RNMMapUrlTile.m} +7 -7
  132. package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.h → Maps/RNMMapUrlTileCachedOverlay.h} +3 -3
  133. package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.m → Maps/RNMMapUrlTileCachedOverlay.m} +10 -10
  134. package/ios/{AirMaps/AIRMapUrlTileManager.h → Maps/RNMMapUrlTileManager.h} +3 -3
  135. package/ios/{AirMaps/AIRMapUrlTileManager.m → Maps/RNMMapUrlTileManager.m} +9 -9
  136. package/ios/Maps/RNMMapViewModule.h +5 -0
  137. package/ios/Maps/RNMMapViewModule.m +459 -0
  138. package/ios/{AirMaps/AIRMapWMSTile.h → Maps/RNMMapWMSTile.h} +11 -11
  139. package/ios/{AirMaps/AIRMapWMSTile.m → Maps/RNMMapWMSTile.m} +15 -15
  140. package/ios/{AirMaps/AIRMapWMSTileManager.h → Maps/RNMMapWMSTileManager.h} +3 -3
  141. package/ios/{AirMaps/AIRMapWMSTileManager.m → Maps/RNMMapWMSTileManager.m} +9 -9
  142. package/ios/RNMaps.xcodeproj/project.pbxproj +647 -0
  143. package/lib/Geojson.d.ts +1 -1
  144. package/lib/MapCallout.js +2 -2
  145. package/lib/MapCalloutSubview.js +2 -2
  146. package/lib/MapCircle.js +2 -2
  147. package/lib/MapHeatmap.js +2 -2
  148. package/lib/MapLocalTile.js +2 -2
  149. package/lib/MapMarker.d.ts +2 -3
  150. package/lib/MapMarker.js +2 -4
  151. package/lib/MapOverlay.d.ts +1 -2
  152. package/lib/MapOverlay.js +2 -4
  153. package/lib/MapPolygon.js +2 -2
  154. package/lib/MapPolyline.js +2 -2
  155. package/lib/MapUrlTile.js +2 -2
  156. package/lib/MapView.d.ts +14 -14
  157. package/lib/MapView.js +92 -107
  158. package/lib/MapView.types.d.ts +8 -3
  159. package/lib/MapViewNativeComponent.d.ts +1 -8
  160. package/lib/MapViewNativeComponent.js +1 -10
  161. package/lib/MapWMSTile.js +2 -2
  162. package/lib/NativeGoogleMapViewModule.d.ts +25 -0
  163. package/lib/NativeGoogleMapViewModule.js +4 -0
  164. package/lib/NativeMapViewModule.d.ts +29 -0
  165. package/lib/NativeMapViewModule.js +4 -0
  166. package/lib/decorateMapComponent.d.ts +1 -1
  167. package/lib/decorateMapComponent.js +3 -3
  168. package/lib/index.d.ts +14 -21
  169. package/lib/index.js +10 -38
  170. package/package.json +6 -6
  171. package/react-native-google-maps.podspec +1 -1
  172. package/react-native-maps.podspec +2 -2
  173. package/android/src/main/java/com/rnmaps/maps/MapModule.java +0 -380
  174. package/ios/AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.m +0 -28
  175. package/ios/AirGoogleMaps/AIRGoogleMapHeatmapManager.h +0 -11
  176. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -597
  177. package/ios/AirMaps/AIRMapCalloutSubviewManager.h +0 -14
  178. package/ios/AirMaps/AIRMapCalloutSubviewManager.m +0 -24
  179. package/ios/AirMaps/AIRMapManager.m +0 -1253
  180. package/ios/AirMaps/AIRMapOverlayManager.h +0 -5
  181. package/ios/AirMaps/AIRWeakMapReference.h +0 -24
  182. package/ios/AirMaps/AIRWeakMapReference.m +0 -23
  183. package/ios/AirMaps/AIRWeakTimerReference.h +0 -21
  184. package/ios/AirMaps/AIRWeakTimerReference.m +0 -42
  185. package/ios/AirMaps.xcodeproj/project.pbxproj +0 -587
  186. /package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.h +0 -0
@@ -93,7 +93,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
93
93
  private Boolean isMapLoaded = false;
94
94
  private Integer loadingBackgroundColor = null;
95
95
  private Integer loadingIndicatorColor = null;
96
- private final int baseMapPadding = 50;
96
+ public final int baseMapPadding = 50;
97
97
 
98
98
  private LatLngBounds boundsToMove;
99
99
  private CameraUpdate cameraToSet;
@@ -110,11 +110,12 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
110
110
  private boolean initialCameraSet = false;
111
111
  private LatLngBounds cameraLastIdleBounds;
112
112
  private int cameraMoveReason = 0;
113
+ private LatLngBounds boundary;
113
114
 
114
115
  private static final String[] PERMISSIONS = new String[]{
115
116
  "android.permission.ACCESS_FINE_LOCATION", "android.permission.ACCESS_COARSE_LOCATION"};
116
117
 
117
- private final List<MapFeature> features = new ArrayList<>();
118
+ public final List<MapFeature> features = new ArrayList<>();
118
119
  private final Map<Marker, MapMarker> markerMap = new HashMap<>();
119
120
  private final Map<Polyline, MapPolyline> polylineMap = new HashMap<>();
120
121
  private final Map<Polygon, MapPolygon> polygonMap = new HashMap<>();
@@ -275,17 +276,17 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
275
276
  markerCollection.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
276
277
  @Override
277
278
  public boolean onMarkerClick(@NonNull Marker marker) {
278
- MapMarker airMapMarker = getMarkerMap(marker);
279
+ MapMarker rnmMapMarker = getMarkerMap(marker);
279
280
 
280
281
  WritableMap event = makeClickEventData(marker.getPosition());
281
282
  event.putString("action", "marker-press");
282
- event.putString("id", airMapMarker.getIdentifier());
283
+ event.putString("id", rnmMapMarker.getIdentifier());
283
284
  manager.pushEvent(context, view, "onMarkerPress", event);
284
285
 
285
286
  event = makeClickEventData(marker.getPosition());
286
287
  event.putString("action", "marker-press");
287
- event.putString("id", airMapMarker.getIdentifier());
288
- manager.pushEvent(context, airMapMarker, "onPress", event);
288
+ event.putString("id", rnmMapMarker.getIdentifier());
289
+ manager.pushEvent(context, rnmMapMarker, "onPress", event);
289
290
 
290
291
  // Return false to open the callout info window and center on the marker
291
292
  // https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap
@@ -500,7 +501,42 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
500
501
  }
501
502
  }
502
503
 
504
+ public void setBoundary(ReadableMap boundary) {
505
+ if(boundary == null) {
506
+ this.boundary = null;
507
+ if(map != null) {
508
+ // consumers can pass null to clear boundary
509
+ map.setLatLngBoundsForCameraTarget(null);
510
+ }
511
+ } else {
512
+ LatLngBounds.Builder builder = new LatLngBounds.Builder();
513
+
514
+ ReadableMap northEast = boundary.getMap("northEast");
515
+ ReadableMap southWest = boundary.getMap("southWest");
516
+
517
+ double neLat = northEast.getDouble("latitude");
518
+ double neLng = northEast.getDouble("longitude");
519
+ builder.include(new LatLng(neLat, neLng));
520
+
521
+ double swLat = southWest.getDouble("latitude");
522
+ double swLng = southWest.getDouble("longitude");
523
+ builder.include(new LatLng(swLat, swLng));
524
+
525
+ LatLngBounds bounds = builder.build();
526
+
527
+ this.boundary = bounds;
528
+
529
+ if(map != null) {
530
+ map.setLatLngBoundsForCameraTarget(bounds);
531
+ }
532
+ }
533
+ }
534
+
535
+ // called as soon as the map is ready. Assuming nothing was set on the map at this point.
503
536
  private void applyBridgedProps() {
537
+ if(boundary != null) {
538
+ map.setLatLngBoundsForCameraTarget(boundary);
539
+ }
504
540
  if(initialRegion != null) {
505
541
  moveToRegion(initialRegion);
506
542
  initialRegionSet = true;
@@ -831,8 +867,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
831
867
  }
832
868
  }
833
869
 
834
- public void animateToCamera(ReadableMap camera, int duration) {
835
- if (map == null) return;
870
+ public CameraUpdate buildCameraUpdate(ReadableMap camera) {
836
871
  CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());
837
872
  if (camera.hasKey("zoom")) {
838
873
  builder.zoom((float)camera.getDouble("zoom"));
@@ -848,103 +883,26 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
848
883
  builder.target(new LatLng(center.getDouble("latitude"), center.getDouble("longitude")));
849
884
  }
850
885
 
851
- CameraUpdate update = CameraUpdateFactory.newCameraPosition(builder.build());
852
-
853
- if (duration <= 0) {
854
- map.moveCamera(update);
855
- }
856
- else {
857
- map.animateCamera(update, duration, null);
858
- }
859
- }
860
-
861
- public void animateToRegion(LatLngBounds bounds, int duration) {
862
- if (map == null) return;
863
- if(duration <= 0) {
864
- map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0));
865
- } else {
866
- map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0), duration, null);
867
- }
886
+ return CameraUpdateFactory.newCameraPosition(builder.build());
868
887
  }
869
888
 
870
- public void fitToElements(ReadableMap edgePadding, boolean animated) {
871
- if (map == null) return;
872
-
873
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
874
-
875
- boolean addedPosition = false;
876
-
877
- for (MapFeature feature : features) {
878
- if (feature instanceof MapMarker) {
879
- Marker marker = (Marker) feature.getFeature();
880
- builder.include(marker.getPosition());
881
- addedPosition = true;
882
- }
883
- // TODO(lmr): may want to include shapes / etc.
884
- }
885
- if (addedPosition) {
886
- LatLngBounds bounds = builder.build();
887
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
888
-
889
- if (edgePadding != null) {
890
- map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
891
- edgePadding.getInt("right"), edgePadding.getInt("bottom"));
892
- }
893
-
894
- if (animated) {
895
- map.animateCamera(cu);
896
- } else {
897
- map.moveCamera(cu);
898
- }
899
- }
900
- }
901
-
902
- public void fitToSuppliedMarkers(ReadableArray markerIDsArray, ReadableMap edgePadding, boolean animated) {
889
+ public void animateToCamera(ReadableMap camera, int duration) {
903
890
  if (map == null) return;
904
891
 
905
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
906
-
907
- String[] markerIDs = new String[markerIDsArray.size()];
908
- for (int i = 0; i < markerIDsArray.size(); i++) {
909
- markerIDs[i] = markerIDsArray.getString(i);
910
- }
892
+ CameraUpdate update = buildCameraUpdate(camera);
911
893
 
912
- boolean addedPosition = false;
913
-
914
- List<String> markerIDList = Arrays.asList(markerIDs);
915
-
916
- for (MapFeature feature : features) {
917
- if (feature instanceof MapMarker) {
918
- String identifier = ((MapMarker) feature).getIdentifier();
919
- Marker marker = (Marker) feature.getFeature();
920
- if (markerIDList.contains(identifier)) {
921
- builder.include(marker.getPosition());
922
- addedPosition = true;
923
- }
924
- }
894
+ if (duration <= 0) {
895
+ map.moveCamera(update);
925
896
  }
926
-
927
- if (addedPosition) {
928
- LatLngBounds bounds = builder.build();
929
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
930
-
931
- if (edgePadding != null) {
932
- map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
933
- edgePadding.getInt("right"), edgePadding.getInt("bottom"));
934
- }
935
-
936
- if (animated) {
937
- map.animateCamera(cu);
938
- } else {
939
- map.moveCamera(cu);
940
- }
897
+ else {
898
+ map.animateCamera(update, duration, null);
941
899
  }
942
900
  }
943
901
 
944
- int baseLeftMapPadding;
945
- int baseRightMapPadding;
946
- int baseTopMapPadding;
947
- int baseBottomMapPadding;
902
+ public int baseLeftMapPadding;
903
+ public int baseRightMapPadding;
904
+ public int baseTopMapPadding;
905
+ public int baseBottomMapPadding;
948
906
 
949
907
  public void applyBaseMapPadding(int left, int top, int right, int bottom){
950
908
  this.map.setPadding(left, top, right, bottom);
@@ -954,36 +912,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
954
912
  baseBottomMapPadding = bottom;
955
913
  }
956
914
 
957
- public void fitToCoordinates(ReadableArray coordinatesArray, ReadableMap edgePadding,
958
- boolean animated) {
959
- if (map == null) return;
960
-
961
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
962
-
963
- for (int i = 0; i < coordinatesArray.size(); i++) {
964
- ReadableMap latLng = coordinatesArray.getMap(i);
965
- double lat = latLng.getDouble("latitude");
966
- double lng = latLng.getDouble("longitude");
967
- builder.include(new LatLng(lat, lng));
968
- }
969
-
970
- LatLngBounds bounds = builder.build();
971
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
972
-
973
- if (edgePadding != null) {
974
- appendMapPadding(edgePadding.getInt("left"), edgePadding.getInt("top"), edgePadding.getInt("right"), edgePadding.getInt("bottom"));
975
- }
976
-
977
- if (animated) {
978
- map.animateCamera(cu);
979
- } else {
980
- map.moveCamera(cu);
981
- }
982
- // Move the google logo to the default base padding value.
983
- map.setPadding(baseLeftMapPadding, baseTopMapPadding, baseRightMapPadding, baseBottomMapPadding);
984
- }
985
-
986
- private void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
915
+ public void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
987
916
  int left;
988
917
  int top;
989
918
  int right;
@@ -1012,24 +941,6 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1012
941
  };
1013
942
  }
1014
943
 
1015
- public void setMapBoundaries(ReadableMap northEast, ReadableMap southWest) {
1016
- if (map == null) return;
1017
-
1018
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
1019
-
1020
- double latNE = northEast.getDouble("latitude");
1021
- double lngNE = northEast.getDouble("longitude");
1022
- builder.include(new LatLng(latNE, lngNE));
1023
-
1024
- double latSW = southWest.getDouble("latitude");
1025
- double lngSW = southWest.getDouble("longitude");
1026
- builder.include(new LatLng(latSW, lngSW));
1027
-
1028
- LatLngBounds bounds = builder.build();
1029
-
1030
- map.setLatLngBoundsForCameraTarget(bounds);
1031
- }
1032
-
1033
944
  // InfoWindowAdapter interface
1034
945
 
1035
946
  @Override
@@ -1375,21 +1286,21 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1375
1286
  }
1376
1287
 
1377
1288
  private MapMarker getMarkerMap(Marker marker) {
1378
- MapMarker airMarker = markerMap.get(marker);
1289
+ MapMarker rnmMarker = markerMap.get(marker);
1379
1290
 
1380
- if (airMarker != null) {
1381
- return airMarker;
1291
+ if (rnmMarker != null) {
1292
+ return rnmMarker;
1382
1293
  }
1383
1294
 
1384
1295
  for (Map.Entry<Marker, MapMarker> entryMarker : markerMap.entrySet()) {
1385
1296
  if (entryMarker.getKey().getPosition().equals(marker.getPosition())
1386
1297
  && entryMarker.getKey().getTitle().equals(marker.getTitle())) {
1387
- airMarker = entryMarker.getValue();
1298
+ rnmMarker = entryMarker.getValue();
1388
1299
  break;
1389
1300
  }
1390
1301
  }
1391
1302
 
1392
- return airMarker;
1303
+ return rnmMarker;
1393
1304
  }
1394
1305
 
1395
1306
  @Override