react-native-maps 2.0.0-beta.1 → 2.0.0-beta.11

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 +9 -83
  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 +66 -157
  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} +90 -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 +223 -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 +385 -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 +830 -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 +465 -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 +21 -16
  156. package/lib/MapView.js +92 -118
  157. package/lib/MapView.types.d.ts +8 -3
  158. package/lib/MapViewNativeComponent.d.ts +0 -15
  159. package/lib/MapViewNativeComponent.js +0 -17
  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,13 @@ 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
- }
889
- }
890
-
891
- public void fitToSuppliedMarkers(ReadableArray markerIDsArray, ReadableMap edgePadding, boolean animated) {
892
- if (map == null) return;
893
-
894
- LatLngBounds.Builder builder = new LatLngBounds.Builder();
895
-
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
- }
914
- }
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
- }
930
- }
886
+ return CameraUpdateFactory.newCameraPosition(builder.build());
931
887
  }
932
888
 
933
- int baseLeftMapPadding;
934
- int baseRightMapPadding;
935
- int baseTopMapPadding;
936
- int baseBottomMapPadding;
889
+ public int baseLeftMapPadding;
890
+ public int baseRightMapPadding;
891
+ public int baseTopMapPadding;
892
+ public int baseBottomMapPadding;
937
893
 
938
894
  public void applyBaseMapPadding(int left, int top, int right, int bottom){
939
895
  this.map.setPadding(left, top, right, bottom);
@@ -943,36 +899,7 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
943
899
  baseBottomMapPadding = bottom;
944
900
  }
945
901
 
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) {
902
+ public void appendMapPadding(int iLeft,int iTop, int iRight, int iBottom) {
976
903
  int left;
977
904
  int top;
978
905
  int right;
@@ -1001,24 +928,6 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1001
928
  };
1002
929
  }
1003
930
 
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
931
  // InfoWindowAdapter interface
1023
932
 
1024
933
  @Override
@@ -1364,21 +1273,21 @@ public class MapView extends com.google.android.gms.maps.MapView implements Goog
1364
1273
  }
1365
1274
 
1366
1275
  private MapMarker getMarkerMap(Marker marker) {
1367
- MapMarker airMarker = markerMap.get(marker);
1276
+ MapMarker rnmMarker = markerMap.get(marker);
1368
1277
 
1369
- if (airMarker != null) {
1370
- return airMarker;
1278
+ if (rnmMarker != null) {
1279
+ return rnmMarker;
1371
1280
  }
1372
1281
 
1373
1282
  for (Map.Entry<Marker, MapMarker> entryMarker : markerMap.entrySet()) {
1374
1283
  if (entryMarker.getKey().getPosition().equals(marker.getPosition())
1375
1284
  && entryMarker.getKey().getTitle().equals(marker.getTitle())) {
1376
- airMarker = entryMarker.getValue();
1285
+ rnmMarker = entryMarker.getValue();
1377
1286
  break;
1378
1287
  }
1379
1288
  }
1380
1289
 
1381
- return airMarker;
1290
+ return rnmMarker;
1382
1291
  }
1383
1292
 
1384
1293
  @Override