react-native-maps 1.21.0-alpha.14 → 1.21.0-alpha.140

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 (256) hide show
  1. package/android/build.gradle +73 -53
  2. package/android/gradlew +1 -2
  3. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  4. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  5. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  6. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  7. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  8. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  9. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  10. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  11. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  12. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  13. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  14. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +46 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +23 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  29. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  30. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  31. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  32. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +624 -0
  33. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  34. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +235 -2
  35. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +95 -0
  36. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  37. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  38. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  39. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  40. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  41. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  42. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  43. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  66. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +55 -3
  67. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +18 -0
  68. package/android/src/main/java/com/rnmaps/maps/MapCircle.java +24 -0
  69. package/android/src/main/java/com/rnmaps/maps/MapManager.java +14 -14
  70. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +637 -556
  71. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  72. package/android/src/main/java/com/rnmaps/maps/MapModule.java +206 -206
  73. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +267 -151
  74. package/android/src/main/java/com/rnmaps/maps/MapPolygon.java +31 -1
  75. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +207 -141
  76. package/android/src/main/java/com/rnmaps/maps/MapPolylineManager.java +1 -16
  77. package/android/src/main/java/com/rnmaps/maps/MapUrlTile.java +18 -18
  78. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +10 -14
  79. package/android/src/main/java/com/rnmaps/maps/MapView.java +1649 -1336
  80. package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +3 -3
  81. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +10 -10
  82. package/android/src/main/jni/CMakeLists.txt +36 -0
  83. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  84. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  85. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  86. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  87. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  88. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  89. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  90. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1263 -0
  91. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  92. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  93. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  94. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  95. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  96. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  97. package/ios/AirGoogleMaps/AIRGoogleMap.h +10 -11
  98. package/ios/AirGoogleMaps/AIRGoogleMap.m +104 -71
  99. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +23 -11
  100. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +1 -0
  101. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +254 -250
  102. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +6 -3
  103. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  104. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +3 -0
  105. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +0 -1
  106. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +0 -7
  107. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  108. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  109. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  110. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +1 -1
  111. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +123 -43
  112. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  113. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  114. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +217 -0
  115. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  116. package/ios/AirMaps/AIRMap.h +8 -9
  117. package/ios/AirMaps/AIRMap.m +222 -239
  118. package/ios/AirMaps/AIRMapManager.m +10 -7
  119. package/ios/AirMaps/AIRMapMarker.h +1 -0
  120. package/ios/AirMaps/AIRMapMarker.m +142 -67
  121. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  122. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +28 -0
  123. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +68 -0
  124. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  125. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +43 -0
  126. package/ios/AirMaps/RNMapsAirModule.h +1 -1
  127. package/ios/AirMaps/RNMapsAirModule.mm +4 -3
  128. package/ios/AirMaps/RNMapsDefines.h +1 -0
  129. package/ios/AirMaps/RNMapsMapView.h +1 -1
  130. package/ios/AirMaps/RNMapsMapView.mm +119 -95
  131. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  132. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  133. package/ios/AirMaps/RNMapsMarkerView.mm +430 -0
  134. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  135. package/ios/AirMaps.xcodeproj/project.pbxproj +20 -0
  136. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  137. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  138. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  139. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  140. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  141. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  142. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +2 -2
  143. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  144. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  145. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  146. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  147. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  148. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  149. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  150. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  151. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  152. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  153. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  154. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  155. package/ios/generated/RNMapsSpecs/States.h +113 -0
  156. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  157. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  158. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  159. package/package.json +26 -19
  160. package/react-native-google-maps.podspec +26 -0
  161. package/react-native-maps-generated.podspec +31 -0
  162. package/react-native-maps.podspec +55 -15
  163. package/react-native.config.js +16 -0
  164. package/src/AnimatedRegion.ts +169 -0
  165. package/src/Geojson.tsx +541 -0
  166. package/src/MapCallout.tsx +77 -0
  167. package/src/MapCalloutSubview.tsx +64 -0
  168. package/src/MapCircle.tsx +162 -0
  169. package/src/MapHeatmap.tsx +125 -0
  170. package/src/MapLocalTile.tsx +60 -0
  171. package/src/MapMarker.tsx +531 -0
  172. package/src/MapMarkerNativeComponent.ts +51 -0
  173. package/src/MapOverlay.tsx +156 -0
  174. package/src/MapPolygon.tsx +188 -0
  175. package/src/MapPolygon.types.ts +25 -0
  176. package/src/MapPolyline.tsx +215 -0
  177. package/src/MapUrlTile.tsx +169 -0
  178. package/src/MapView.tsx +1230 -0
  179. package/src/MapView.types.ts +212 -0
  180. package/src/MapView.web.ts +2 -0
  181. package/src/MapViewNativeComponent.ts +86 -0
  182. package/src/MapWMSTile.tsx +148 -0
  183. package/src/ProviderConstants.ts +2 -0
  184. package/src/createFabricMap.tsx +253 -0
  185. package/src/decorateMapComponent.ts +227 -0
  186. package/src/fixImageProp.ts +17 -0
  187. package/src/index.ts +52 -0
  188. package/src/sharedTypes.ts +101 -0
  189. package/src/specs/NativeAirMapsModule.ts +36 -0
  190. package/src/specs/NativeComponentCallout.ts +63 -0
  191. package/src/specs/NativeComponentCircle.ts +93 -0
  192. package/src/specs/NativeComponentGoogleMapView.ts +922 -0
  193. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  194. package/src/specs/NativeComponentMapView.ts +1100 -0
  195. package/src/specs/NativeComponentMarker.ts +326 -0
  196. package/src/specs/NativeComponentOverlay.ts +89 -0
  197. package/src/specs/NativeComponentPolyline.ts +124 -0
  198. package/src/specs/NativeComponentUrlTile.ts +128 -0
  199. package/src/specs/NativeComponentWMSTile.ts +107 -0
  200. package/lib/AnimatedRegion.d.ts +0 -19
  201. package/lib/AnimatedRegion.js +0 -134
  202. package/lib/Geojson.d.ts +0 -204
  203. package/lib/Geojson.js +0 -166
  204. package/lib/MapCallout.d.ts +0 -40
  205. package/lib/MapCallout.js +0 -51
  206. package/lib/MapCalloutSubview.d.ts +0 -34
  207. package/lib/MapCalloutSubview.js +0 -48
  208. package/lib/MapCircle.d.ts +0 -117
  209. package/lib/MapCircle.js +0 -53
  210. package/lib/MapHeatmap.d.ts +0 -78
  211. package/lib/MapHeatmap.js +0 -59
  212. package/lib/MapLocalTile.d.ts +0 -35
  213. package/lib/MapLocalTile.js +0 -44
  214. package/lib/MapMarker.d.ts +0 -309
  215. package/lib/MapMarker.js +0 -116
  216. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  217. package/lib/MapMarkerNativeComponent.js +0 -17
  218. package/lib/MapOverlay.d.ts +0 -87
  219. package/lib/MapOverlay.js +0 -63
  220. package/lib/MapPolygon.d.ts +0 -140
  221. package/lib/MapPolygon.js +0 -53
  222. package/lib/MapPolygon.types.d.ts +0 -18
  223. package/lib/MapPolygon.types.js +0 -2
  224. package/lib/MapPolyline.d.ts +0 -156
  225. package/lib/MapPolyline.js +0 -53
  226. package/lib/MapUrlTile.d.ts +0 -134
  227. package/lib/MapUrlTile.js +0 -44
  228. package/lib/MapView.d.ts +0 -715
  229. package/lib/MapView.js +0 -447
  230. package/lib/MapView.types.d.ts +0 -161
  231. package/lib/MapView.types.js +0 -2
  232. package/lib/MapView.web.d.ts +0 -1
  233. package/lib/MapView.web.js +0 -9
  234. package/lib/MapViewNativeComponent.d.ts +0 -18
  235. package/lib/MapViewNativeComponent.js +0 -19
  236. package/lib/MapWMSTile.d.ts +0 -116
  237. package/lib/MapWMSTile.js +0 -44
  238. package/lib/ProviderConstants.d.ts +0 -2
  239. package/lib/ProviderConstants.js +0 -5
  240. package/lib/createFabricMap.d.ts +0 -23
  241. package/lib/createFabricMap.js +0 -175
  242. package/lib/decorateMapComponent.d.ts +0 -36
  243. package/lib/decorateMapComponent.js +0 -80
  244. package/lib/index.d.ts +0 -38
  245. package/lib/index.js +0 -81
  246. package/lib/sharedTypes.d.ts +0 -81
  247. package/lib/sharedTypes.js +0 -2
  248. package/lib/sharedTypesInternal.js +0 -2
  249. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  250. package/lib/specs/NativeAirMapsModule.js +0 -4
  251. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  252. package/lib/specs/NativeComponentGoogleMapView.js +0 -21
  253. package/lib/specs/NativeComponentMapView.d.ts +0 -855
  254. package/lib/specs/NativeComponentMapView.js +0 -21
  255. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  256. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
@@ -30,7 +30,7 @@ static NSString *const RCTMapViewKey = @"MapView";
30
30
 
31
31
  @interface AIRGoogleMapManager() <GMSMapViewDelegate>
32
32
  {
33
- BOOL didCallOnMapReady;
33
+ BOOL didCallOnMapReady;
34
34
  }
35
35
  @end
36
36
 
@@ -40,37 +40,40 @@ RCT_EXPORT_MODULE()
40
40
 
41
41
  - (UIView *)view
42
42
  {
43
-
44
- if (self.initialProps){
45
- if (self.initialProps[@"googleMapId"]){
46
- _googleMapId = self.initialProps[@"googleMapId"];
47
- }
48
- if (self.initialProps[@"zoomTapEnabled"]){
49
- _zoomTapEnabled = self.initialProps[@"zoomTapEnabled"];
50
- }
51
- if (self.initialProps[@"loadingBackgroundColor"]){
52
- _backgroundColor = [RCTConvert UIColor:self.initialProps[@"loadingBackgroundColor"]];
53
- }
54
- if (self.initialProps[@"initialCamera"]){
55
- _camera = [RCTConvert GMSCameraPositionWithDefaults:self.initialProps[@"initialCamera"] existingCamera:nil];
56
- }
57
- }
58
- AIRGoogleMap *map = [[AIRGoogleMap alloc] initWithMapId:self.googleMapId initialCamera:self.camera backgroundColor:self.backgroundColor andZoomTapEnabled:self.zoomTapEnabled];
59
- map.bridge = self.bridge;
60
- map.delegate = self;
61
- map.isAccessibilityElement = NO;
62
- map.accessibilityElementsHidden = NO;
63
- map.settings.consumesGesturesInView = NO;
64
-
65
- UIPanGestureRecognizer *drag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
66
- [drag setMinimumNumberOfTouches:1];
67
- [drag setMaximumNumberOfTouches:1];
68
- [map addGestureRecognizer:drag];
69
-
70
- UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
71
- [map addGestureRecognizer:pinch];
72
-
73
- return map;
43
+
44
+ if (self.initialProps){
45
+ if (self.initialProps[@"googleMapId"]){
46
+ _googleMapId = self.initialProps[@"googleMapId"];
47
+ }
48
+ if (self.initialProps[@"zoomTapEnabled"]){
49
+ _zoomTapEnabled = self.initialProps[@"zoomTapEnabled"];
50
+ }
51
+ if (self.initialProps[@"loadingBackgroundColor"]){
52
+ _backgroundColor = [RCTConvert UIColor:self.initialProps[@"loadingBackgroundColor"]];
53
+ }
54
+ if (self.initialProps[@"initialCamera"]){
55
+ _camera = [RCTConvert GMSCameraPositionWithDefaults:self.initialProps[@"initialCamera"] existingCamera:nil];
56
+ }
57
+ }
58
+ AIRGoogleMap *map = [[AIRGoogleMap alloc] initWithMapId:self.googleMapId initialCamera:self.camera backgroundColor:self.backgroundColor andZoomTapEnabled:self.zoomTapEnabled];
59
+ map.bridge = self.bridge;
60
+ map.delegate = self;
61
+ map.isAccessibilityElement = NO;
62
+ map.accessibilityElementsHidden = NO;
63
+ map.settings.consumesGesturesInView = NO;
64
+ if (self.customMapStyle != nil){
65
+ map.customMapStyleString = self.customMapStyle;
66
+ }
67
+
68
+ UIPanGestureRecognizer *drag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
69
+ [drag setMinimumNumberOfTouches:1];
70
+ [drag setMaximumNumberOfTouches:1];
71
+ [map addGestureRecognizer:drag];
72
+
73
+ UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
74
+ [map addGestureRecognizer:pinch];
75
+
76
+ return map;
74
77
  }
75
78
 
76
79
  RCT_EXPORT_VIEW_PROPERTY(isAccessibilityElement, BOOL)
@@ -97,14 +100,13 @@ RCT_EXPORT_VIEW_PROPERTY(showsIndoorLevelPicker, BOOL)
97
100
  RCT_EXPORT_VIEW_PROPERTY(customMapStyleString, NSString)
98
101
  RCT_EXPORT_VIEW_PROPERTY(mapPadding, UIEdgeInsets)
99
102
  RCT_REMAP_VIEW_PROPERTY(paddingAdjustmentBehavior, paddingAdjustmentBehaviorString, NSString)
100
- RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTBubblingEventBlock)
101
- RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTBubblingEventBlock)
102
- RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTBubblingEventBlock)
103
+ RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
104
+ RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTDirectEventBlock)
105
+ RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTDirectEventBlock)
103
106
  RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
104
107
  RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
105
- RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTBubblingEventBlock)
106
- RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTBubblingEventBlock)
107
- RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
108
+ RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
109
+ RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
108
110
  RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
109
111
  RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
110
112
  RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
@@ -131,14 +133,14 @@ RCT_EXPORT_METHOD(getCamera:(nonnull NSNumber *)reactTag
131
133
  } else {
132
134
  AIRGoogleMap *mapView = (AIRGoogleMap *)view;
133
135
  resolve(@{
134
- @"center": @{
135
- @"latitude": @(mapView.camera.target.latitude),
136
- @"longitude": @(mapView.camera.target.longitude),
137
- },
138
- @"pitch": @(mapView.camera.viewingAngle),
139
- @"heading": @(mapView.camera.bearing),
140
- @"zoom": @(mapView.camera.zoom),
141
- });
136
+ @"center": @{
137
+ @"latitude": @(mapView.camera.target.latitude),
138
+ @"longitude": @(mapView.camera.target.longitude),
139
+ },
140
+ @"pitch": @(mapView.camera.viewingAngle),
141
+ @"heading": @(mapView.camera.bearing),
142
+ @"zoom": @(mapView.camera.zoom),
143
+ });
142
144
  }
143
145
  }];
144
146
  }
@@ -182,36 +184,36 @@ RCT_EXPORT_METHOD(animateToRegion:(nonnull NSNumber *)reactTag
182
184
  withRegion:(MKCoordinateRegion)region
183
185
  withDuration:(CGFloat)duration)
184
186
  {
185
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
186
- id view = viewRegistry[reactTag];
187
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
188
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
189
- } else {
190
- // Core Animation must be used to control the animation's duration
191
- // See http://stackoverflow.com/a/15663039/171744
192
- [CATransaction begin];
193
- [CATransaction setAnimationDuration:duration/1000];
194
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
195
- GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:mapView andMKCoordinateRegion:region];
196
- [mapView animateToCameraPosition:camera];
197
- [CATransaction commit];
198
- }
199
- }];
187
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
188
+ id view = viewRegistry[reactTag];
189
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
190
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
191
+ } else {
192
+ // Core Animation must be used to control the animation's duration
193
+ // See http://stackoverflow.com/a/15663039/171744
194
+ [CATransaction begin];
195
+ [CATransaction setAnimationDuration:duration/1000];
196
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
197
+ GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:mapView andMKCoordinateRegion:region];
198
+ [mapView animateToCameraPosition:camera];
199
+ [CATransaction commit];
200
+ }
201
+ }];
200
202
  }
201
203
 
202
204
  RCT_EXPORT_METHOD(fitToElements:(nonnull NSNumber *)reactTag
203
205
  edgePadding:(nonnull NSDictionary *)edgePadding
204
206
  animated:(BOOL)animated)
205
207
  {
206
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
207
- id view = viewRegistry[reactTag];
208
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
209
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
210
- } else {
211
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
212
- [mapView fitToElementsWithEdgePadding:edgePadding animated:animated];
213
- }
214
- }];
208
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
209
+ id view = viewRegistry[reactTag];
210
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
211
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
212
+ } else {
213
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
214
+ [mapView fitToElementsWithEdgePadding:edgePadding animated:animated];
215
+ }
216
+ }];
215
217
  }
216
218
 
217
219
  RCT_EXPORT_METHOD(fitToSuppliedMarkers:(nonnull NSNumber *)reactTag
@@ -219,15 +221,15 @@ RCT_EXPORT_METHOD(fitToSuppliedMarkers:(nonnull NSNumber *)reactTag
219
221
  edgePadding:(nonnull NSDictionary *)edgePadding
220
222
  animated:(BOOL)animated)
221
223
  {
222
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
223
- id view = viewRegistry[reactTag];
224
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
225
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
226
- } else {
227
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
228
- [mapView fitToSuppliedMarkers:markers withEdgePadding:edgePadding animated:animated];
229
- }
230
- }];
224
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
225
+ id view = viewRegistry[reactTag];
226
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
227
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
228
+ } else {
229
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
230
+ [mapView fitToSuppliedMarkers:markers withEdgePadding:edgePadding animated:animated];
231
+ }
232
+ }];
231
233
  }
232
234
 
233
235
  RCT_EXPORT_METHOD(fitToCoordinates:(nonnull NSNumber *)reactTag
@@ -235,15 +237,15 @@ RCT_EXPORT_METHOD(fitToCoordinates:(nonnull NSNumber *)reactTag
235
237
  edgePadding:(nonnull NSDictionary *)edgePadding
236
238
  animated:(BOOL)animated)
237
239
  {
238
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
239
- id view = viewRegistry[reactTag];
240
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
241
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
242
- } else {
243
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
244
- [mapView fitToCoordinates:coordinates withEdgePadding:edgePadding animated:animated];
245
- }
246
- }];
240
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
241
+ id view = viewRegistry[reactTag];
242
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
243
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
244
+ } else {
245
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
246
+ [mapView fitToCoordinates:coordinates withEdgePadding:edgePadding animated:animated];
247
+ }
248
+ }];
247
249
  }
248
250
 
249
251
  RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
@@ -255,52 +257,54 @@ RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
255
257
  result:(nonnull NSString *)result
256
258
  withCallback:(RCTPromiseResolveBlock)callback)
257
259
  {
258
- NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
259
- NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
260
- NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
261
-
262
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
263
- id view = viewRegistry[reactTag];
264
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
265
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
266
- } else {
267
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
268
- NSMutableDictionary* config = [NSMutableDictionary new];
269
-
270
- [mapView takeSnapshotWithConfig:config callback:callback];
271
-
272
- [config setObject:width forKey:@"width"];
273
- [config setObject:height forKey:@"height"];
274
- [config setObject:format forKey:@"format"];
275
- [config setObject:quality forKey:@"quality"];
276
- [config setObject:result forKey:@"result"];
277
- [config setObject:filePath forKey:@"filePath"];
278
-
279
- // TODO: currently we are ignoring width, height, region
280
-
281
- UIGraphicsBeginImageContextWithOptions(mapView.frame.size, YES, 0.0f);
282
- [mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
283
- UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
284
-
285
- NSData *data;
286
- if ([format isEqualToString:@"png"]) {
287
- data = UIImagePNGRepresentation(image);
288
-
289
- }
290
- else if([format isEqualToString:@"jpg"]) {
291
- data = UIImageJPEGRepresentation(image, quality.floatValue);
292
- }
293
-
294
- if ([result isEqualToString:@"file"]) {
295
- [data writeToFile:filePath atomically:YES];
296
- callback(@[[NSNull null], filePath]);
297
- }
298
- else if ([result isEqualToString:@"base64"]) {
299
- callback(@[[NSNull null], [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]]);
260
+ NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
261
+ NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
262
+ NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
263
+
264
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
265
+ id view = viewRegistry[reactTag];
266
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
267
+ RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
268
+ } else {
269
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
270
+ NSMutableDictionary* config = [NSMutableDictionary new];
271
+
272
+ [mapView takeSnapshotWithConfig:config success:callback error:^(NSString *code, NSString *message, NSError *error) {
273
+ callback(@[error]);
274
+ }];
275
+
276
+ [config setObject:width forKey:@"width"];
277
+ [config setObject:height forKey:@"height"];
278
+ [config setObject:format forKey:@"format"];
279
+ [config setObject:quality forKey:@"quality"];
280
+ [config setObject:result forKey:@"result"];
281
+ [config setObject:filePath forKey:@"filePath"];
282
+
283
+ // TODO: currently we are ignoring width, height, region
284
+
285
+ UIGraphicsBeginImageContextWithOptions(mapView.frame.size, YES, 0.0f);
286
+ [mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
287
+ UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
288
+
289
+ NSData *data;
290
+ if ([format isEqualToString:@"png"]) {
291
+ data = UIImagePNGRepresentation(image);
292
+
293
+ }
294
+ else if([format isEqualToString:@"jpg"]) {
295
+ data = UIImageJPEGRepresentation(image, quality.floatValue);
296
+ }
297
+
298
+ if ([result isEqualToString:@"file"]) {
299
+ [data writeToFile:filePath atomically:YES];
300
+ callback(@[[NSNull null], filePath]);
301
+ }
302
+ else if ([result isEqualToString:@"base64"]) {
303
+ callback(@[[NSNull null], [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]]);
304
+ }
300
305
  }
301
- }
302
- UIGraphicsEndImageContext();
303
- }];
306
+ UIGraphicsEndImageContext();
307
+ }];
304
308
  }
305
309
 
306
310
  RCT_EXPORT_METHOD(pointForCoordinate:(nonnull NSNumber *)reactTag
@@ -308,21 +312,21 @@ RCT_EXPORT_METHOD(pointForCoordinate:(nonnull NSNumber *)reactTag
308
312
  resolver: (RCTPromiseResolveBlock)resolve
309
313
  rejecter:(RCTPromiseRejectBlock)reject)
310
314
  {
311
- CLLocationCoordinate2D coord =
312
- CLLocationCoordinate2DMake(
313
- [coordinate[@"latitude"] doubleValue],
314
- [coordinate[@"longitude"] doubleValue]
315
- );
316
-
317
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
318
- id view = viewRegistry[reactTag];
319
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
320
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
321
- } else {
322
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
323
- resolve([mapView getPointForCoordinates:coord]);
324
- }
325
- }];
315
+ CLLocationCoordinate2D coord =
316
+ CLLocationCoordinate2DMake(
317
+ [coordinate[@"latitude"] doubleValue],
318
+ [coordinate[@"longitude"] doubleValue]
319
+ );
320
+
321
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
322
+ id view = viewRegistry[reactTag];
323
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
324
+ RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
325
+ } else {
326
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
327
+ resolve([mapView getPointForCoordinates:coord]);
328
+ }
329
+ }];
326
330
  }
327
331
 
328
332
  RCT_EXPORT_METHOD(coordinateForPoint:(nonnull NSNumber *)reactTag
@@ -330,20 +334,20 @@ RCT_EXPORT_METHOD(coordinateForPoint:(nonnull NSNumber *)reactTag
330
334
  resolver: (RCTPromiseResolveBlock)resolve
331
335
  rejecter:(RCTPromiseRejectBlock)reject)
332
336
  {
333
- CGPoint pt = CGPointMake(
334
- [point[@"x"] doubleValue],
335
- [point[@"y"] doubleValue]
336
- );
337
-
338
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
339
- id view = viewRegistry[reactTag];
340
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
341
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
342
- } else {
343
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
344
- resolve([view getCoordinatesForPoint:pt]);
345
- }
346
- }];
337
+ CGPoint pt = CGPointMake(
338
+ [point[@"x"] doubleValue],
339
+ [point[@"y"] doubleValue]
340
+ );
341
+
342
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
343
+ id view = viewRegistry[reactTag];
344
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
345
+ RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
346
+ } else {
347
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
348
+ resolve([view getCoordinatesForPoint:pt]);
349
+ }
350
+ }];
347
351
  }
348
352
 
349
353
  RCT_EXPORT_METHOD(getMarkersFrames:(nonnull NSNumber *)reactTag
@@ -366,140 +370,140 @@ RCT_EXPORT_METHOD(getMapBoundaries:(nonnull NSNumber *)reactTag
366
370
  resolver:(RCTPromiseResolveBlock)resolve
367
371
  rejecter:(RCTPromiseRejectBlock)reject)
368
372
  {
369
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
370
- id view = viewRegistry[reactTag];
371
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
372
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
373
- } else {
374
- resolve([view getMapBoundaries]);
375
- }
376
- }];
373
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
374
+ id view = viewRegistry[reactTag];
375
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
376
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
377
+ } else {
378
+ resolve([view getMapBoundaries]);
379
+ }
380
+ }];
377
381
  }
378
382
 
379
383
  RCT_EXPORT_METHOD(setMapBoundaries:(nonnull NSNumber *)reactTag
380
384
  northEast:(CLLocationCoordinate2D)northEast
381
385
  southWest:(CLLocationCoordinate2D)southWest)
382
386
  {
383
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
384
- id view = viewRegistry[reactTag];
385
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
386
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
387
- } else {
388
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
389
-
390
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast coordinate:southWest];
391
-
392
- mapView.cameraTargetBounds = bounds;
393
- }
394
- }];
387
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
388
+ id view = viewRegistry[reactTag];
389
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
390
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
391
+ } else {
392
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
393
+
394
+ GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast coordinate:southWest];
395
+
396
+ mapView.cameraTargetBounds = bounds;
397
+ }
398
+ }];
395
399
  }
396
400
 
397
401
  RCT_EXPORT_METHOD(setIndoorActiveLevelIndex:(nonnull NSNumber *)reactTag
398
402
  levelIndex:(NSInteger) levelIndex)
399
403
  {
400
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
401
- id view = viewRegistry[reactTag];
402
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
403
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
404
- } else {
405
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
406
- if (!mapView.indoorDisplay) {
407
- return;
408
- }
409
- if ( levelIndex < [mapView.indoorDisplay.activeBuilding.levels count]) {
410
- mapView.indoorDisplay.activeLevel = mapView.indoorDisplay.activeBuilding.levels[levelIndex];
411
- }
412
- }
413
- }];
414
- }
404
+ [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
405
+ id view = viewRegistry[reactTag];
406
+ if (![view isKindOfClass:[AIRGoogleMap class]]) {
407
+ RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
408
+ } else {
409
+ AIRGoogleMap *mapView = (AIRGoogleMap *)view;
410
+ if (!mapView.indoorDisplay) {
411
+ return;
412
+ }
413
+ if ( levelIndex < [mapView.indoorDisplay.activeBuilding.levels count]) {
414
+ mapView.indoorDisplay.activeLevel = mapView.indoorDisplay.activeBuilding.levels[levelIndex];
415
+ }
416
+ }
417
+ }];
418
+ }
415
419
 
416
420
  + (BOOL)requiresMainQueueSetup {
417
- return YES;
421
+ return YES;
418
422
  }
419
423
 
420
424
  - (NSDictionary *)constantsToExport {
421
- return @{ @"legalNotice": [GMSServices openSourceLicenseInfo] };
425
+ return @{ @"legalNotice": [GMSServices openSourceLicenseInfo] };
422
426
  }
423
427
 
424
428
  - (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture {
425
- self.isGesture = gesture;
426
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
427
- [googleMapView willMove:gesture];
429
+ self.isGesture = gesture;
430
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
431
+ [googleMapView willMove:gesture];
428
432
  }
429
433
 
430
434
  - (void)mapViewDidStartTileRendering:(GMSMapView *)mapView {
431
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
432
- [googleMapView didPrepareMap];
435
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
436
+ [googleMapView didPrepareMap];
433
437
  }
434
438
 
435
439
  - (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView {
436
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
437
- [googleMapView mapViewDidFinishTileRendering];
440
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
441
+ [googleMapView mapViewDidFinishTileRendering];
438
442
  }
439
443
 
440
444
  - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
441
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
442
- return [googleMapView didTapMarker:marker];
445
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
446
+ return [googleMapView didTapMarker:marker];
443
447
  }
444
448
 
445
449
  - (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSPolygon *)polygon {
446
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
447
- [googleMapView didTapPolygon:polygon];
450
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
451
+ [googleMapView didTapPolygon:polygon];
448
452
  }
449
453
 
450
454
  - (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate {
451
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
452
- [googleMapView didTapAtCoordinate:coordinate];
455
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
456
+ [googleMapView didTapAtCoordinate:coordinate];
453
457
  }
454
458
 
455
459
  - (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate {
456
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
457
- [googleMapView didLongPressAtCoordinate:coordinate];
460
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
461
+ [googleMapView didLongPressAtCoordinate:coordinate];
458
462
  }
459
463
 
460
464
  - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
461
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
462
- [googleMapView didChangeCameraPosition:position isGesture:self.isGesture];
465
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
466
+ [googleMapView didChangeCameraPosition:position isGesture:self.isGesture];
463
467
  }
464
468
 
465
469
  - (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position {
466
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
467
- [googleMapView idleAtCameraPosition:position isGesture:self.isGesture];
470
+ AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
471
+ [googleMapView idleAtCameraPosition:position isGesture:self.isGesture];
468
472
  }
469
473
 
470
474
  - (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
471
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
472
- return [aMarker.fakeMarker markerInfoWindow];}
475
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
476
+ return [aMarker.fakeMarker markerInfoWindow];}
473
477
 
474
478
  - (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker {
475
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
476
- return [aMarker.fakeMarker markerInfoContents];
479
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
480
+ return [aMarker.fakeMarker markerInfoContents];
477
481
  }
478
482
 
479
483
  - (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker {
480
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
481
- [aMarker.fakeMarker didTapInfoWindowOfMarker:aMarker];
484
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
485
+ [aMarker.fakeMarker didTapInfoWindowOfMarker:aMarker];
482
486
  }
483
487
 
484
488
  - (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker {
485
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
486
- [aMarker.fakeMarker didBeginDraggingMarker:aMarker];
489
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
490
+ [aMarker.fakeMarker didBeginDraggingMarker:aMarker];
487
491
  }
488
492
 
489
493
  - (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker {
490
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
491
- [aMarker.fakeMarker didEndDraggingMarker:aMarker];
494
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
495
+ [aMarker.fakeMarker didEndDraggingMarker:aMarker];
492
496
  }
493
497
 
494
498
  - (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker {
495
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
496
- [aMarker.fakeMarker didDragMarker:aMarker];
499
+ AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
500
+ [aMarker.fakeMarker didDragMarker:aMarker];
497
501
  }
498
502
 
499
503
  - (void)mapView:(GMSMapView *)mapView
500
- didTapPOIWithPlaceID:(NSString *)placeID
501
- name:(NSString *)name
502
- location:(CLLocationCoordinate2D)location {
504
+ didTapPOIWithPlaceID:(NSString *)placeID
505
+ name:(NSString *)name
506
+ location:(CLLocationCoordinate2D)location {
503
507
  AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
504
508
  [googleMapView didTapPOIWithPlaceID:placeID name:name location:location];
505
509
  }
@@ -507,23 +511,23 @@ RCT_EXPORT_METHOD(setIndoorActiveLevelIndex:(nonnull NSNumber *)reactTag
507
511
  #pragma mark Gesture Recognizer Handlers
508
512
 
509
513
  - (void)handleMapDrag:(UIPanGestureRecognizer*)recognizer {
510
- AIRGoogleMap *map = (AIRGoogleMap *)recognizer.view;
511
- if (!map.onPanDrag) return;
512
-
513
- CGPoint touchPoint = [recognizer locationInView:map];
514
- CLLocationCoordinate2D coord = [map.projection coordinateForPoint:touchPoint];
515
- map.onPanDrag(@{
516
- @"coordinate": @{
517
- @"latitude": @(coord.latitude),
518
- @"longitude": @(coord.longitude),
519
- },
520
- @"position": @{
521
- @"x": @(touchPoint.x),
522
- @"y": @(touchPoint.y),
523
- },
524
- @"numberOfTouches": @(recognizer.numberOfTouches),
525
- });
526
-
514
+ AIRGoogleMap *map = (AIRGoogleMap *)recognizer.view;
515
+ if (!map.onPanDrag) return;
516
+
517
+ CGPoint touchPoint = [recognizer locationInView:map];
518
+ CLLocationCoordinate2D coord = [map.projection coordinateForPoint:touchPoint];
519
+ map.onPanDrag(@{
520
+ @"coordinate": @{
521
+ @"latitude": @(coord.latitude),
522
+ @"longitude": @(coord.longitude),
523
+ },
524
+ @"position": @{
525
+ @"x": @(touchPoint.x),
526
+ @"y": @(touchPoint.y),
527
+ },
528
+ @"numberOfTouches": @(recognizer.numberOfTouches),
529
+ });
530
+
527
531
  }
528
532
 
529
533
  @end