react-native-maps 2.0.0-beta.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 +72 -150
  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 +4 -4
  82. package/ios/{AirMaps/RCTConvert+AirMap.h → Maps/RCTConvert+RNMMap.h} +1 -1
  83. package/ios/{AirMaps/RCTConvert+AirMap.m → Maps/RCTConvert+RNMMap.m} +25 -8
  84. package/ios/{AirMaps/AIRMap.h → Maps/RNMMap.h} +8 -8
  85. package/ios/{AirMaps/AIRMap.m → Maps/RNMMap.m} +60 -56
  86. package/ios/{AirMaps/AIRMapCallout.h → Maps/RNMMapCallout.h} +1 -1
  87. package/ios/{AirMaps/AIRMapCallout.m → Maps/RNMMapCallout.m} +2 -2
  88. package/ios/{AirMaps/AIRMapCircleManager.h → Maps/RNMMapCalloutManager.h} +2 -2
  89. package/ios/{AirMaps/AIRMapCalloutManager.m → Maps/RNMMapCalloutManager.m} +7 -7
  90. package/ios/{AirMaps/AIRMapCalloutSubview.h → Maps/RNMMapCalloutSubview.h} +3 -3
  91. package/ios/{AirMaps/AIRMapCalloutSubview.m → Maps/RNMMapCalloutSubview.m} +4 -4
  92. package/ios/Maps/RNMMapCalloutSubviewManager.h +14 -0
  93. package/ios/Maps/RNMMapCalloutSubviewManager.m +24 -0
  94. package/ios/{AirMaps/AIRMapCircle.h → Maps/RNMMapCircle.h} +5 -5
  95. package/ios/{AirMaps/AIRMapCircle.m → Maps/RNMMapCircle.m} +3 -3
  96. package/ios/{AirMaps/AIRMapCalloutManager.h → Maps/RNMMapCircleManager.h} +2 -2
  97. package/ios/{AirMaps/AIRMapCircleManager.m → Maps/RNMMapCircleManager.m} +7 -7
  98. package/ios/{AirMaps/AIRMapCoordinate.h → Maps/RNMMapCoordinate.h} +2 -2
  99. package/ios/{AirMaps/AIRMapCoordinate.m → Maps/RNMMapCoordinate.m} +3 -3
  100. package/ios/{AirMaps/AIRMapLocalTile.h → Maps/RNMMapLocalTile.h} +7 -7
  101. package/ios/{AirMaps/AIRMapLocalTile.m → Maps/RNMMapLocalTile.m} +6 -6
  102. package/ios/{AirMaps/AIRMapLocalTileManager.h → Maps/RNMMapLocalTileManager.h} +3 -3
  103. package/ios/{AirMaps/AIRMapLocalTileManager.m → Maps/RNMMapLocalTileManager.m} +9 -9
  104. package/ios/{AirMaps/AIRMapLocalTileOverlay.h → Maps/RNMMapLocalTileOverlay.h} +2 -2
  105. package/ios/{AirMaps/AIRMapLocalTileOverlay.m → Maps/RNMMapLocalTileOverlay.m} +5 -5
  106. package/ios/{AirMaps/AIRMapManager.h → Maps/RNMMapManager.h} +6 -6
  107. package/ios/Maps/RNMMapManager.m +854 -0
  108. package/ios/{AirMaps/AIRMapMarker.h → Maps/RNMMapMarker.h} +8 -8
  109. package/ios/{AirMaps/AIRMapMarker.m → Maps/RNMMapMarker.m} +13 -13
  110. package/ios/{AirMaps/AIRMapMarkerManager.h → Maps/RNMMapMarkerManager.h} +1 -1
  111. package/ios/{AirMaps/AIRMapMarkerManager.m → Maps/RNMMapMarkerManager.m} +14 -14
  112. package/ios/{AirMaps/AIRMapOverlay.h → Maps/RNMMapOverlay.h} +7 -7
  113. package/ios/{AirMaps/AIRMapOverlay.m → Maps/RNMMapOverlay.m} +4 -4
  114. package/ios/Maps/RNMMapOverlayManager.h +5 -0
  115. package/ios/{AirMaps/AIRMapOverlayManager.m → Maps/RNMMapOverlayManager.m} +6 -6
  116. package/ios/{AirMaps/AIRMapOverlayRenderer.h → Maps/RNMMapOverlayRenderer.h} +1 -1
  117. package/ios/{AirMaps/AIRMapOverlayRenderer.m → Maps/RNMMapOverlayRenderer.m} +5 -5
  118. package/ios/{AirMaps/AIRMapPolygon.h → Maps/RNMMapPolygon.h} +7 -7
  119. package/ios/{AirMaps/AIRMapPolygon.m → Maps/RNMMapPolygon.m} +4 -4
  120. package/ios/{AirMaps/AIRMapPolygonManager.h → Maps/RNMMapPolygonManager.h} +2 -2
  121. package/ios/{AirMaps/AIRMapPolygonManager.m → Maps/RNMMapPolygonManager.m} +10 -10
  122. package/ios/{AirMaps/AIRMapPolyline.h → Maps/RNMMapPolyline.h} +6 -6
  123. package/ios/{AirMaps/AIRMapPolyline.m → Maps/RNMMapPolyline.m} +11 -11
  124. package/ios/{AirMaps/AIRMapPolylineManager.h → Maps/RNMMapPolylineManager.h} +2 -2
  125. package/ios/{AirMaps/AIRMapPolylineManager.m → Maps/RNMMapPolylineManager.m} +9 -9
  126. package/ios/{AirMaps/AIRMapPolylineRenderer.h → Maps/RNMMapPolylineRenderer.h} +2 -2
  127. package/ios/{AirMaps/AIRMapPolylineRenderer.m → Maps/RNMMapPolylineRenderer.m} +10 -10
  128. package/ios/{AirMaps/AIRMapSnapshot.h → Maps/RNMMapSnapshot.h} +6 -6
  129. package/ios/{AirMaps/AIRMapUrlTile.h → Maps/RNMMapUrlTile.h} +18 -18
  130. package/ios/{AirMaps/AIRMapUrlTile.m → Maps/RNMMapUrlTile.m} +7 -7
  131. package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.h → Maps/RNMMapUrlTileCachedOverlay.h} +3 -3
  132. package/ios/{AirMaps/AIRMapUrlTileCachedOverlay.m → Maps/RNMMapUrlTileCachedOverlay.m} +10 -10
  133. package/ios/{AirMaps/AIRMapUrlTileManager.h → Maps/RNMMapUrlTileManager.h} +3 -3
  134. package/ios/{AirMaps/AIRMapUrlTileManager.m → Maps/RNMMapUrlTileManager.m} +9 -9
  135. package/ios/Maps/RNMMapViewModule.h +5 -0
  136. package/ios/Maps/RNMMapViewModule.m +459 -0
  137. package/ios/{AirMaps/AIRMapWMSTile.h → Maps/RNMMapWMSTile.h} +11 -11
  138. package/ios/{AirMaps/AIRMapWMSTile.m → Maps/RNMMapWMSTile.m} +15 -15
  139. package/ios/{AirMaps/AIRMapWMSTileManager.h → Maps/RNMMapWMSTileManager.h} +3 -3
  140. package/ios/{AirMaps/AIRMapWMSTileManager.m → Maps/RNMMapWMSTileManager.m} +9 -9
  141. package/ios/RNMaps.xcodeproj/project.pbxproj +647 -0
  142. package/lib/Geojson.d.ts +1 -1
  143. package/lib/MapCallout.js +2 -2
  144. package/lib/MapCalloutSubview.js +2 -2
  145. package/lib/MapCircle.js +2 -2
  146. package/lib/MapHeatmap.js +2 -2
  147. package/lib/MapLocalTile.js +2 -2
  148. package/lib/MapMarker.d.ts +2 -3
  149. package/lib/MapMarker.js +2 -4
  150. package/lib/MapOverlay.d.ts +1 -2
  151. package/lib/MapOverlay.js +2 -4
  152. package/lib/MapPolygon.js +2 -2
  153. package/lib/MapPolyline.js +2 -2
  154. package/lib/MapUrlTile.js +2 -2
  155. package/lib/MapView.d.ts +14 -14
  156. package/lib/MapView.js +92 -107
  157. package/lib/MapView.types.d.ts +8 -3
  158. package/lib/MapViewNativeComponent.d.ts +1 -8
  159. package/lib/MapViewNativeComponent.js +1 -10
  160. package/lib/MapWMSTile.js +2 -2
  161. package/lib/NativeGoogleMapViewModule.d.ts +25 -0
  162. package/lib/NativeGoogleMapViewModule.js +4 -0
  163. package/lib/NativeMapViewModule.d.ts +29 -0
  164. package/lib/NativeMapViewModule.js +4 -0
  165. package/lib/decorateMapComponent.d.ts +1 -1
  166. package/lib/decorateMapComponent.js +3 -3
  167. package/lib/index.d.ts +14 -21
  168. package/lib/index.js +10 -38
  169. package/package.json +6 -6
  170. package/react-native-google-maps.podspec +1 -1
  171. package/react-native-maps.podspec +2 -2
  172. package/android/src/main/java/com/rnmaps/maps/MapModule.java +0 -380
  173. package/ios/AirGoogleMaps/AIRGoogleMapCalloutSubviewManager.m +0 -28
  174. package/ios/AirGoogleMaps/AIRGoogleMapHeatmapManager.h +0 -11
  175. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -597
  176. package/ios/AirMaps/AIRMapCalloutSubviewManager.h +0 -14
  177. package/ios/AirMaps/AIRMapCalloutSubviewManager.m +0 -24
  178. package/ios/AirMaps/AIRMapManager.m +0 -1253
  179. package/ios/AirMaps/AIRMapOverlayManager.h +0 -5
  180. package/ios/AirMaps/AIRWeakMapReference.h +0 -24
  181. package/ios/AirMaps/AIRWeakMapReference.m +0 -23
  182. package/ios/AirMaps/AIRWeakTimerReference.h +0 -21
  183. package/ios/AirMaps/AIRWeakTimerReference.m +0 -42
  184. package/ios/AirMaps.xcodeproj/project.pbxproj +0 -587
  185. /package/ios/{AirGoogleMaps → GoogleMaps}/RCTConvert+GMSMapViewType.h +0 -0
  186. /package/ios/{AirMaps → Maps}/Callout/SMCalloutView.m +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;
@@ -770,10 +806,21 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
770
806
  MapFeature feature = features.remove(index);
771
807
  if (feature instanceof MapMarker) {
772
808
  markerMap.remove(feature.getFeature());
809
+ feature.removeFromMap(markerCollection);
773
810
  } else if (feature instanceof MapHeatmap) {
774
811
  heatmapMap.remove(feature.getFeature());
812
+ feature.removeFromMap(map);
813
+ } else if(feature instanceof MapCircle) {
814
+ feature.removeFromMap(circleCollection);
815
+ } else if(feature instanceof MapOverlay) {
816
+ feature.removeFromMap(groundOverlayCollection);
817
+ } else if(feature instanceof MapPolygon) {
818
+ feature.removeFromMap(polygonCollection);
819
+ } else if(feature instanceof MapPolyline) {
820
+ feature.removeFromMap(polylineCollection);
821
+ } else {
822
+ feature.removeFromMap(map);
775
823
  }
776
- feature.removeFromMap(map);
777
824
  }
778
825
 
779
826
  public WritableMap makeClickEventData(LatLng point) {
@@ -820,8 +867,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
820
867
  }
821
868
  }
822
869
 
823
- public void animateToCamera(ReadableMap camera, int duration) {
824
- if (map == null) return;
870
+ public CameraUpdate buildCameraUpdate(ReadableMap camera) {
825
871
  CameraPosition.Builder builder = new CameraPosition.Builder(map.getCameraPosition());
826
872
  if (camera.hasKey("zoom")) {
827
873
  builder.zoom((float)camera.getDouble("zoom"));
@@ -837,103 +883,26 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
837
883
  builder.target(new LatLng(center.getDouble("latitude"), center.getDouble("longitude")));
838
884
  }
839
885
 
840
- CameraUpdate update = CameraUpdateFactory.newCameraPosition(builder.build());
841
-
842
- if (duration <= 0) {
843
- map.moveCamera(update);
844
- }
845
- else {
846
- map.animateCamera(update, duration, null);
847
- }
848
- }
849
-
850
- public void animateToRegion(LatLngBounds bounds, int duration) {
851
- if (map == null) return;
852
- if(duration <= 0) {
853
- map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0));
854
- } else {
855
- map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 0), duration, null);
856
- }
857
- }
858
-
859
- public void fitToElements(ReadableMap edgePadding, boolean animated) {
860
- if (map == null) return;
861
-
862
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
863
-
864
- boolean addedPosition = false;
865
-
866
- for (MapFeature feature : features) {
867
- if (feature instanceof MapMarker) {
868
- Marker marker = (Marker) feature.getFeature();
869
- builder.include(marker.getPosition());
870
- addedPosition = true;
871
- }
872
- // TODO(lmr): may want to include shapes / etc.
873
- }
874
- if (addedPosition) {
875
- LatLngBounds bounds = builder.build();
876
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
877
-
878
- if (edgePadding != null) {
879
- map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
880
- edgePadding.getInt("right"), edgePadding.getInt("bottom"));
881
- }
882
-
883
- if (animated) {
884
- map.animateCamera(cu);
885
- } else {
886
- map.moveCamera(cu);
887
- }
888
- }
886
+ return CameraUpdateFactory.newCameraPosition(builder.build());
889
887
  }
890
888
 
891
- public void fitToSuppliedMarkers(ReadableArray markerIDsArray, ReadableMap edgePadding, boolean animated) {
889
+ public void animateToCamera(ReadableMap camera, int duration) {
892
890
  if (map == null) return;
893
891
 
894
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
892
+ CameraUpdate update = buildCameraUpdate(camera);
895
893
 
896
- String[] markerIDs = new String[markerIDsArray.size()];
897
- for (int i = 0; i < markerIDsArray.size(); i++) {
898
- markerIDs[i] = markerIDsArray.getString(i);
899
- }
900
-
901
- boolean addedPosition = false;
902
-
903
- List<String> markerIDList = Arrays.asList(markerIDs);
904
-
905
- for (MapFeature feature : features) {
906
- if (feature instanceof MapMarker) {
907
- String identifier = ((MapMarker) feature).getIdentifier();
908
- Marker marker = (Marker) feature.getFeature();
909
- if (markerIDList.contains(identifier)) {
910
- builder.include(marker.getPosition());
911
- addedPosition = true;
912
- }
913
- }
894
+ if (duration <= 0) {
895
+ map.moveCamera(update);
914
896
  }
915
-
916
- if (addedPosition) {
917
- LatLngBounds bounds = builder.build();
918
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
919
-
920
- if (edgePadding != null) {
921
- map.setPadding(edgePadding.getInt("left"), edgePadding.getInt("top"),
922
- edgePadding.getInt("right"), edgePadding.getInt("bottom"));
923
- }
924
-
925
- if (animated) {
926
- map.animateCamera(cu);
927
- } else {
928
- map.moveCamera(cu);
929
- }
897
+ else {
898
+ map.animateCamera(update, duration, null);
930
899
  }
931
900
  }
932
901
 
933
- int baseLeftMapPadding;
934
- int baseRightMapPadding;
935
- int baseTopMapPadding;
936
- int baseBottomMapPadding;
902
+ public int baseLeftMapPadding;
903
+ public int baseRightMapPadding;
904
+ public int baseTopMapPadding;
905
+ public int baseBottomMapPadding;
937
906
 
938
907
  public void applyBaseMapPadding(int left, int top, int right, int bottom){
939
908
  this.map.setPadding(left, top, right, bottom);
@@ -943,36 +912,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
943
912
  baseBottomMapPadding = bottom;
944
913
  }
945
914
 
946
- public void fitToCoordinates(ReadableArray coordinatesArray, ReadableMap edgePadding,
947
- boolean animated) {
948
- if (map == null) return;
949
-
950
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
951
-
952
- for (int i = 0; i < coordinatesArray.size(); i++) {
953
- ReadableMap latLng = coordinatesArray.getMap(i);
954
- double lat = latLng.getDouble("latitude");
955
- double lng = latLng.getDouble("longitude");
956
- builder.include(new LatLng(lat, lng));
957
- }
958
-
959
- LatLngBounds bounds = builder.build();
960
- CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, baseMapPadding);
961
-
962
- if (edgePadding != null) {
963
- appendMapPadding(edgePadding.getInt("left"), edgePadding.getInt("top"), edgePadding.getInt("right"), edgePadding.getInt("bottom"));
964
- }
965
-
966
- if (animated) {
967
- map.animateCamera(cu);
968
- } else {
969
- map.moveCamera(cu);
970
- }
971
- // Move the google logo to the default base padding value.
972
- map.setPadding(baseLeftMapPadding, baseTopMapPadding, baseRightMapPadding, baseBottomMapPadding);
973
- }
974
-
975
- private void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
915
+ public void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
976
916
  int left;
977
917
  int top;
978
918
  int right;
@@ -1001,24 +941,6 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1001
941
  };
1002
942
  }
1003
943
 
1004
- public void setMapBoundaries(ReadableMap northEast, ReadableMap southWest) {
1005
- if (map == null) return;
1006
-
1007
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
1008
-
1009
- double latNE = northEast.getDouble("latitude");
1010
- double lngNE = northEast.getDouble("longitude");
1011
- builder.include(new LatLng(latNE, lngNE));
1012
-
1013
- double latSW = southWest.getDouble("latitude");
1014
- double lngSW = southWest.getDouble("longitude");
1015
- builder.include(new LatLng(latSW, lngSW));
1016
-
1017
- LatLngBounds bounds = builder.build();
1018
-
1019
- map.setLatLngBoundsForCameraTarget(bounds);
1020
- }
1021
-
1022
944
  // InfoWindowAdapter interface
1023
945
 
1024
946
  @Override
@@ -1364,21 +1286,21 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1364
1286
  }
1365
1287
 
1366
1288
  private MapMarker getMarkerMap(Marker marker) {
1367
- MapMarker airMarker = markerMap.get(marker);
1289
+ MapMarker rnmMarker = markerMap.get(marker);
1368
1290
 
1369
- if (airMarker != null) {
1370
- return airMarker;
1291
+ if (rnmMarker != null) {
1292
+ return rnmMarker;
1371
1293
  }
1372
1294
 
1373
1295
  for (Map.Entry<Marker, MapMarker> entryMarker : markerMap.entrySet()) {
1374
1296
  if (entryMarker.getKey().getPosition().equals(marker.getPosition())
1375
1297
  && entryMarker.getKey().getTitle().equals(marker.getTitle())) {
1376
- airMarker = entryMarker.getValue();
1298
+ rnmMarker = entryMarker.getValue();
1377
1299
  break;
1378
1300
  }
1379
1301
  }
1380
1302
 
1381
- return airMarker;
1303
+ return rnmMarker;
1382
1304
  }
1383
1305
 
1384
1306
  @Override