react-native-maps 0.31.1 → 1.0.0-alpha.1

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 (301) hide show
  1. package/android/build.gradle +89 -33
  2. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  3. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  4. package/android/gradlew +251 -0
  5. package/android/gradlew.bat +94 -0
  6. package/android/src/main/AndroidManifest.xml +1 -5
  7. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  8. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  9. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  10. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  11. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  12. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  13. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  14. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  29. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  30. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  31. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  32. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  33. package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
  34. package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
  35. package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
  36. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +623 -0
  37. package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
  38. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +284 -0
  39. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +101 -0
  40. package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
  41. package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
  42. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  43. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  44. package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
  45. package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
  46. package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
  47. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
  48. package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
  49. package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
  50. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
  51. package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
  52. package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
  53. package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
  54. package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
  55. package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
  56. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
  57. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
  58. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
  59. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
  60. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
  61. package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
  62. package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
  63. package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
  64. package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
  65. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
  66. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
  67. package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
  68. package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
  69. package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
  70. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FileUtil.java +3 -6
  71. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FusedLocationSource.java +5 -2
  72. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReadable.java +1 -1
  73. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReader.java +5 -7
  74. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageUtil.java +1 -2
  75. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/LatLngBoundsUtils.java +1 -1
  76. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +98 -0
  77. package/android/src/main/java/com/rnmaps/maps/MapCallout.java +41 -0
  78. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCalloutManager.java → rnmaps/maps/MapCalloutManager.java} +6 -6
  79. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircle.java → rnmaps/maps/MapCircle.java} +34 -8
  80. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircleManager.java → rnmaps/maps/MapCircleManager.java} +15 -20
  81. package/android/src/main/java/com/rnmaps/maps/MapFeature.java +17 -0
  82. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolyline.java → rnmaps/maps/MapGradientPolyline.java} +9 -12
  83. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolylineManager.java → rnmaps/maps/MapGradientPolylineManager.java} +13 -18
  84. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmap.java → rnmaps/maps/MapHeatmap.java} +8 -9
  85. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmapManager.java → rnmaps/maps/MapHeatmapManager.java} +8 -8
  86. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapLocalTile.java → rnmaps/maps/MapLocalTile.java} +19 -16
  87. package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +54 -0
  88. package/android/src/main/java/com/rnmaps/maps/MapManager.java +504 -0
  89. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +706 -0
  90. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +368 -0
  91. package/android/src/main/java/com/rnmaps/maps/MapModule.java +283 -0
  92. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +262 -0
  93. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +97 -0
  94. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygon.java → rnmaps/maps/MapPolygon.java} +73 -9
  95. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygonManager.java → rnmaps/maps/MapPolygonManager.java} +22 -22
  96. package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +230 -0
  97. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolylineManager.java → rnmaps/maps/MapPolylineManager.java} +18 -38
  98. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileProvider.java → rnmaps/maps/MapTileProvider.java} +55 -76
  99. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileWorker.java → rnmaps/maps/MapTileWorker.java} +7 -14
  100. package/android/src/main/java/com/rnmaps/maps/MapUIBlock.java +64 -0
  101. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapUrlTile.java → rnmaps/maps/MapUrlTile.java} +29 -29
  102. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +87 -0
  103. package/android/src/main/java/com/rnmaps/maps/MapView.java +1844 -0
  104. package/android/src/main/java/com/{airbnb/android/react/maps/AirMapWMSTile.java → rnmaps/maps/MapWMSTile.java} +11 -17
  105. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +81 -0
  106. package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +45 -0
  107. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/RegionChangeEvent.java +1 -1
  108. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/SizeReportingShadowNode.java +1 -1
  109. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewAttacherGroup.java +2 -7
  110. package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewChangesTracker.java +12 -11
  111. package/android/src/main/jni/CMakeLists.txt +36 -0
  112. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  113. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  114. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  115. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  116. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  117. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  118. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  119. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
  120. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  121. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  122. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  123. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  124. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  125. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  126. package/app.plugin.js +1 -0
  127. package/ios/AirGoogleMaps/AIRGMSMarker.h +2 -0
  128. package/ios/AirGoogleMaps/AIRGoogleMap.h +22 -12
  129. package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +407 -130
  130. package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +2 -3
  131. package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +42 -3
  132. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
  133. package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
  134. package/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h +1 -1
  135. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +11 -0
  136. package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
  137. package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +4 -0
  138. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +369 -237
  139. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +3 -2
  140. package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
  141. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +7 -6
  142. package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +62 -5
  143. package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
  144. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +4 -3
  145. package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +9 -9
  146. package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
  147. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  148. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
  149. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
  150. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
  151. package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
  152. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +29 -0
  153. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +678 -0
  154. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +40 -0
  155. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
  156. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +226 -0
  157. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
  158. package/ios/AirGoogleMaps/Resources/GoogleMapsPrivacy.bundle/PrivacyInfo.xcprivacy +110 -0
  159. package/ios/AirMaps/AIRMap.h +19 -14
  160. package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +333 -120
  161. package/ios/AirMaps/AIRMapCircle.m +1 -53
  162. package/ios/AirMaps/AIRMapCoordinate.m +2 -4
  163. package/ios/AirMaps/AIRMapManager.m +64 -218
  164. package/ios/AirMaps/AIRMapMarker.h +5 -0
  165. package/ios/AirMaps/AIRMapMarker.m +180 -69
  166. package/ios/AirMaps/AIRMapMarkerManager.m +3 -0
  167. package/ios/AirMaps/AIRMapOverlay.m +2 -2
  168. package/ios/AirMaps/AIRMapPolygon.m +0 -52
  169. package/ios/AirMaps/AIRMapPolyline.m +3 -2
  170. package/ios/AirMaps/AIRMapWMSTile.m +8 -8
  171. package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
  172. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
  173. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
  174. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  175. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +52 -0
  176. package/ios/AirMaps/RCTComponentData+Maps.h +13 -0
  177. package/ios/AirMaps/RCTComponentData+Maps.m +55 -0
  178. package/ios/AirMaps/RCTConvert+AirMap.h +6 -1
  179. package/ios/AirMaps/RCTConvert+AirMap.m +18 -0
  180. package/ios/AirMaps/RNMapsAirModule.h +15 -0
  181. package/ios/AirMaps/RNMapsAirModule.mm +164 -0
  182. package/ios/AirMaps/RNMapsDefines.h +1 -0
  183. package/ios/AirMaps/RNMapsMapView.h +27 -0
  184. package/ios/AirMaps/RNMapsMapView.mm +577 -0
  185. package/ios/AirMaps/RNMapsMapViewManager.mm +42 -0
  186. package/ios/AirMaps/RNMapsMarkerView.h +24 -0
  187. package/ios/AirMaps/RNMapsMarkerView.mm +439 -0
  188. package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
  189. package/ios/AirMaps/UIView+AirMap.h +11 -0
  190. package/ios/AirMaps/UIView+AirMap.m +20 -0
  191. package/ios/AirMaps/module.modulemap +6 -0
  192. package/ios/AirMaps.xcodeproj/project.pbxproj +44 -4
  193. package/ios/PrivacyInfo.xcprivacy +37 -0
  194. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  195. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  196. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  197. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  198. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  199. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  200. package/ios/generated/RNMapsAirModuleDelegate.h +24 -0
  201. package/ios/generated/RNMapsHostVewDelegate.h +17 -0
  202. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  203. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  204. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  205. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  206. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  207. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  208. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  209. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  210. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  211. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  212. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  213. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  214. package/ios/generated/RNMapsSpecs/States.h +113 -0
  215. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  216. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  217. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  218. package/ios/generated/module.modulemap +15 -0
  219. package/package.json +57 -34
  220. package/plugin/build/android.js +58 -0
  221. package/plugin/build/index.js +10 -0
  222. package/plugin/build/ios.js +176 -0
  223. package/plugin/build/types.js +2 -0
  224. package/react-native-maps.podspec +114 -11
  225. package/react-native.config.js +15 -0
  226. package/src/{AnimatedRegion.js → AnimatedRegion.ts} +26 -21
  227. package/src/Geojson.tsx +541 -0
  228. package/src/MapCallout.tsx +77 -0
  229. package/src/MapCalloutSubview.tsx +64 -0
  230. package/src/MapCircle.tsx +162 -0
  231. package/src/MapHeatmap.tsx +125 -0
  232. package/src/MapLocalTile.tsx +60 -0
  233. package/src/MapMarker.tsx +531 -0
  234. package/src/MapMarkerNativeComponent.ts +51 -0
  235. package/src/MapOverlay.tsx +178 -0
  236. package/src/MapPolygon.tsx +188 -0
  237. package/src/MapPolygon.types.ts +25 -0
  238. package/src/MapPolyline.tsx +215 -0
  239. package/src/MapUrlTile.tsx +169 -0
  240. package/src/MapView.tsx +1235 -0
  241. package/src/MapView.types.ts +212 -0
  242. package/src/MapView.web.ts +2 -0
  243. package/src/MapViewNativeComponent.ts +86 -0
  244. package/src/MapWMSTile.tsx +148 -0
  245. package/src/ProviderConstants.ts +2 -0
  246. package/src/createFabricMap.tsx +253 -0
  247. package/src/decorateMapComponent.ts +230 -0
  248. package/src/fixImageProp.ts +17 -0
  249. package/src/index.ts +52 -0
  250. package/src/sharedTypes.ts +101 -0
  251. package/src/sharedTypesInternal.ts +1 -0
  252. package/src/specs/NativeAirMapsModule.ts +36 -0
  253. package/src/specs/NativeComponentCallout.ts +63 -0
  254. package/src/specs/NativeComponentCircle.ts +93 -0
  255. package/src/specs/NativeComponentGoogleMapView.ts +922 -0
  256. package/src/specs/NativeComponentGooglePolygon.ts +94 -0
  257. package/src/specs/NativeComponentMapView.ts +1100 -0
  258. package/src/specs/NativeComponentMarker.ts +326 -0
  259. package/src/specs/NativeComponentOverlay.ts +98 -0
  260. package/src/specs/NativeComponentPolyline.ts +124 -0
  261. package/src/specs/NativeComponentUrlTile.ts +128 -0
  262. package/src/specs/NativeComponentWMSTile.ts +107 -0
  263. package/LICENSE +0 -21
  264. package/README.md +0 -652
  265. package/android/src/main/assets/ula.kml +0 -1214
  266. package/android/src/main/java/com/airbnb/android/react/maps/AirMapCallout.java +0 -23
  267. package/android/src/main/java/com/airbnb/android/react/maps/AirMapFeature.java +0 -18
  268. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLiteManager.java +0 -20
  269. package/android/src/main/java/com/airbnb/android/react/maps/AirMapLocalTileManager.java +0 -56
  270. package/android/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +0 -500
  271. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarker.java +0 -630
  272. package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarkerManager.java +0 -370
  273. package/android/src/main/java/com/airbnb/android/react/maps/AirMapModule.java +0 -380
  274. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlay.java +0 -169
  275. package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlayManager.java +0 -81
  276. package/android/src/main/java/com/airbnb/android/react/maps/AirMapPolyline.java +0 -162
  277. package/android/src/main/java/com/airbnb/android/react/maps/AirMapUrlTileManager.java +0 -97
  278. package/android/src/main/java/com/airbnb/android/react/maps/AirMapView.java +0 -1384
  279. package/android/src/main/java/com/airbnb/android/react/maps/AirMapWMSTileManager.java +0 -87
  280. package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +0 -65
  281. package/index.d.ts +0 -637
  282. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -690
  283. package/ios/User.xcconfig +0 -0
  284. package/react-native-google-maps.podspec +0 -22
  285. package/src/Geojson.js +0 -334
  286. package/src/MapCallout.js +0 -51
  287. package/src/MapCalloutSubview.js +0 -44
  288. package/src/MapCircle.js +0 -150
  289. package/src/MapHeatmap.js +0 -99
  290. package/src/MapLocalTile.js +0 -52
  291. package/src/MapMarker.js +0 -377
  292. package/src/MapOverlay.js +0 -86
  293. package/src/MapPolygon.js +0 -202
  294. package/src/MapPolyline.js +0 -168
  295. package/src/MapUrlTile.js +0 -131
  296. package/src/MapView.js +0 -1160
  297. package/src/MapView.web.js +0 -1
  298. package/src/MapWMSTile.js +0 -122
  299. package/src/ProviderConstants.js +0 -2
  300. package/src/decorateMapComponent.js +0 -112
  301. package/src/index.js +0 -31
@@ -1,4 +1,4 @@
1
- package com.airbnb.android.react.maps;
1
+ package com.rnmaps.maps;
2
2
 
3
3
  import android.content.Context;
4
4
 
@@ -9,22 +9,23 @@ import com.google.android.gms.maps.model.TileOverlayOptions;
9
9
  import com.google.android.gms.maps.model.TileProvider;
10
10
 
11
11
  import java.io.ByteArrayOutputStream;
12
- import java.io.File;
13
12
  import java.io.FileInputStream;
14
13
  import java.io.IOException;
15
14
  import java.io.InputStream;
16
15
 
17
- public class AirMapLocalTile extends AirMapFeature {
16
+ public class MapLocalTile extends MapFeature {
18
17
 
19
18
  class AIRMapLocalTileProvider implements TileProvider {
20
19
  private static final int BUFFER_SIZE = 16 * 1024;
21
20
  private int tileSize;
22
21
  private String pathTemplate;
22
+ private final boolean useAssets;
23
23
 
24
24
 
25
- public AIRMapLocalTileProvider(int tileSizet, String pathTemplate) {
25
+ public AIRMapLocalTileProvider(int tileSizet, String pathTemplate, boolean useAssets) {
26
26
  this.tileSize = tileSizet;
27
27
  this.pathTemplate = pathTemplate;
28
+ this.useAssets = useAssets;
28
29
  }
29
30
 
30
31
  @Override
@@ -44,10 +45,10 @@ public class AirMapLocalTile extends AirMapFeature {
44
45
  private byte[] readTileImage(int x, int y, int zoom) {
45
46
  InputStream in = null;
46
47
  ByteArrayOutputStream buffer = null;
47
- File file = new File(getTileFilename(x, y, zoom));
48
+ String tileFilename = getTileFilename(x, y, zoom);
48
49
 
49
50
  try {
50
- in = new FileInputStream(file);
51
+ in = useAssets ? getContext().getAssets().open(tileFilename) : new FileInputStream(tileFilename);
51
52
  buffer = new ByteArrayOutputStream();
52
53
 
53
54
  int nRead;
@@ -59,10 +60,7 @@ public class AirMapLocalTile extends AirMapFeature {
59
60
  buffer.flush();
60
61
 
61
62
  return buffer.toByteArray();
62
- } catch (IOException e) {
63
- e.printStackTrace();
64
- return null;
65
- } catch (OutOfMemoryError e) {
63
+ } catch (IOException | OutOfMemoryError e) {
66
64
  e.printStackTrace();
67
65
  return null;
68
66
  } finally {
@@ -82,13 +80,14 @@ public class AirMapLocalTile extends AirMapFeature {
82
80
 
83
81
  private TileOverlayOptions tileOverlayOptions;
84
82
  private TileOverlay tileOverlay;
85
- private AirMapLocalTile.AIRMapLocalTileProvider tileProvider;
83
+ private MapLocalTile.AIRMapLocalTileProvider tileProvider;
86
84
 
87
85
  private String pathTemplate;
88
86
  private float tileSize;
89
87
  private float zIndex;
88
+ private boolean useAssets;
90
89
 
91
- public AirMapLocalTile(Context context) {
90
+ public MapLocalTile(Context context) {
92
91
  super(context);
93
92
  }
94
93
 
@@ -116,6 +115,10 @@ public class AirMapLocalTile extends AirMapFeature {
116
115
  }
117
116
  }
118
117
 
118
+ public void setUseAssets(boolean useAssets) {
119
+ this.useAssets = useAssets;
120
+ }
121
+
119
122
  public TileOverlayOptions getTileOverlayOptions() {
120
123
  if (tileOverlayOptions == null) {
121
124
  tileOverlayOptions = createTileOverlayOptions();
@@ -126,7 +129,7 @@ public class AirMapLocalTile extends AirMapFeature {
126
129
  private TileOverlayOptions createTileOverlayOptions() {
127
130
  TileOverlayOptions options = new TileOverlayOptions();
128
131
  options.zIndex(zIndex);
129
- this.tileProvider = new AirMapLocalTile.AIRMapLocalTileProvider((int)this.tileSize, this.pathTemplate);
132
+ this.tileProvider = new MapLocalTile.AIRMapLocalTileProvider((int)this.tileSize, this.pathTemplate, this.useAssets);
130
133
  options.tileProvider(this.tileProvider);
131
134
  return options;
132
135
  }
@@ -137,12 +140,12 @@ public class AirMapLocalTile extends AirMapFeature {
137
140
  }
138
141
 
139
142
  @Override
140
- public void addToMap(GoogleMap map) {
141
- this.tileOverlay = map.addTileOverlay(getTileOverlayOptions());
143
+ public void addToMap(Object map) {
144
+ this.tileOverlay = ((GoogleMap) map).addTileOverlay(getTileOverlayOptions());
142
145
  }
143
146
 
144
147
  @Override
145
- public void removeFromMap(GoogleMap map) {
148
+ public void removeFromMap(Object map) {
146
149
  tileOverlay.remove();
147
150
  }
148
151
  }
@@ -0,0 +1,54 @@
1
+ package com.rnmaps.maps;
2
+
3
+ import android.content.Context;
4
+ import android.util.DisplayMetrics;
5
+ import android.view.WindowManager;
6
+
7
+ import com.facebook.react.bridge.ReactApplicationContext;
8
+ import com.facebook.react.uimanager.ThemedReactContext;
9
+ import com.facebook.react.uimanager.ViewGroupManager;
10
+ import com.facebook.react.uimanager.annotations.ReactProp;
11
+
12
+ /**
13
+ * Created by zavadpe on 30/11/2017.
14
+ */
15
+ public class MapLocalTileManager extends ViewGroupManager<MapLocalTile> {
16
+
17
+ public MapLocalTileManager(ReactApplicationContext reactContext) {
18
+ super();
19
+ DisplayMetrics metrics = new DisplayMetrics();
20
+ ((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
21
+ .getDefaultDisplay()
22
+ .getRealMetrics(metrics);
23
+ }
24
+
25
+ @Override
26
+ public String getName() {
27
+ return "AIRMapLocalTile";
28
+ }
29
+
30
+ @Override
31
+ public MapLocalTile createViewInstance(ThemedReactContext context) {
32
+ return new MapLocalTile(context);
33
+ }
34
+
35
+ @ReactProp(name = "pathTemplate")
36
+ public void setPathTemplate(MapLocalTile view, String pathTemplate) {
37
+ view.setPathTemplate(pathTemplate);
38
+ }
39
+
40
+ @ReactProp(name = "tileSize", defaultFloat = 256f)
41
+ public void setTileSize(MapLocalTile view, float tileSize) {
42
+ view.setTileSize(tileSize);
43
+ }
44
+
45
+ @ReactProp(name = "zIndex", defaultFloat = -1.0f)
46
+ public void setZIndex(MapLocalTile view, float zIndex) {
47
+ view.setZIndex(zIndex);
48
+ }
49
+
50
+ @ReactProp(name = "useAssets", defaultBoolean = false)
51
+ public void setUseAssets(MapLocalTile view, boolean useAssets) {
52
+ view.setUseAssets(useAssets);
53
+ }
54
+ }
@@ -0,0 +1,504 @@
1
+ package com.rnmaps.maps;
2
+
3
+ import android.view.View;
4
+
5
+ import androidx.annotation.NonNull;
6
+ import androidx.annotation.Nullable;
7
+
8
+ import com.facebook.react.R;
9
+ import com.facebook.react.bridge.Arguments;
10
+ import com.facebook.react.bridge.ReactApplicationContext;
11
+ import com.facebook.react.bridge.ReadableArray;
12
+ import com.facebook.react.bridge.ReadableMap;
13
+ import com.facebook.react.bridge.WritableMap;
14
+ import com.facebook.react.common.MapBuilder;
15
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
16
+ import com.facebook.react.uimanager.LayoutShadowNode;
17
+ import com.facebook.react.uimanager.ReactStylesDiffMap;
18
+ import com.facebook.react.uimanager.StateWrapper;
19
+ import com.facebook.react.uimanager.ThemedReactContext;
20
+ import com.facebook.react.uimanager.ViewGroupManager;
21
+ import com.facebook.react.uimanager.annotations.ReactProp;
22
+ import com.facebook.react.uimanager.events.RCTEventEmitter;
23
+ import com.google.android.gms.location.Priority;
24
+ import com.google.android.gms.maps.GoogleMap;
25
+ import com.google.android.gms.maps.GoogleMapOptions;
26
+ import com.google.android.gms.maps.MapsInitializer;
27
+ import com.google.android.gms.maps.model.CameraPosition;
28
+ import com.google.android.gms.maps.model.LatLng;
29
+ import com.google.android.gms.maps.model.LatLngBounds;
30
+
31
+ import java.util.Map;
32
+
33
+ public class MapManager extends ViewGroupManager<MapView> {
34
+
35
+ private static final String REACT_CLASS = "AIRMap";
36
+
37
+ private final Map<String, Integer> MAP_TYPES = MapBuilder.of(
38
+ "standard", GoogleMap.MAP_TYPE_NORMAL,
39
+ "satellite", GoogleMap.MAP_TYPE_SATELLITE,
40
+ "hybrid", GoogleMap.MAP_TYPE_HYBRID,
41
+ "terrain", GoogleMap.MAP_TYPE_TERRAIN,
42
+ "none", GoogleMap.MAP_TYPE_NONE
43
+ );
44
+
45
+ public static final Map<String, Integer> MY_LOCATION_PRIORITY = MapBuilder.of(
46
+ "balanced", Priority.PRIORITY_BALANCED_POWER_ACCURACY,
47
+ "high", Priority.PRIORITY_HIGH_ACCURACY,
48
+ "low", Priority.PRIORITY_LOW_POWER,
49
+ "passive", Priority.PRIORITY_PASSIVE
50
+ );
51
+
52
+ private final ReactApplicationContext appContext;
53
+ private MapMarkerManager markerManager;
54
+
55
+ protected GoogleMapOptions googleMapOptions;
56
+
57
+ protected MapsInitializer.Renderer renderer;
58
+
59
+ public MapManager(ReactApplicationContext context) {
60
+ this.appContext = context;
61
+ }
62
+
63
+ public MapMarkerManager getMarkerManager() {
64
+ return this.markerManager;
65
+ }
66
+
67
+ public void setMarkerManager(MapMarkerManager markerManager) {
68
+ this.markerManager = markerManager;
69
+ }
70
+
71
+ @Override
72
+ public String getName() {
73
+ return REACT_CLASS;
74
+ }
75
+
76
+ @Override
77
+ protected MapView createViewInstance(@NonNull ThemedReactContext context) {
78
+ return new MapView(context, this.appContext, this, googleMapOptions);
79
+ }
80
+
81
+ @Override
82
+ protected MapView createViewInstance(int reactTag, @NonNull ThemedReactContext reactContext, @Nullable ReactStylesDiffMap initialProps, @Nullable StateWrapper stateWrapper) {
83
+ this.googleMapOptions = new GoogleMapOptions();
84
+ if (initialProps != null) {
85
+ if (initialProps.getString("googleMapId") != null) {
86
+ googleMapOptions.mapId(initialProps.getString("googleMapId"));
87
+ }
88
+ if (initialProps.hasKey("liteMode")) {
89
+ googleMapOptions.liteMode(initialProps.getBoolean("liteMode", false));
90
+ }
91
+ if (initialProps.hasKey("initialCamera")) {
92
+ CameraPosition position = MapView.cameraPositionFromMap(initialProps.getMap("initialCamera"));
93
+ if (position != null) {
94
+ googleMapOptions.camera(position);
95
+ }
96
+ } else if (initialProps.hasKey("camera")) {
97
+ CameraPosition position = MapView.cameraPositionFromMap(initialProps.getMap("camera"));
98
+ if (position != null) {
99
+ googleMapOptions.camera(position);
100
+ }
101
+ }
102
+ if (initialProps.hasKey("googleRenderer") && "LEGACY".equals(initialProps.getString("googleRenderer"))) {
103
+ renderer = MapsInitializer.Renderer.LEGACY;
104
+ } else {
105
+ renderer = MapsInitializer.Renderer.LATEST;
106
+ }
107
+ }
108
+ return super.createViewInstance(reactTag, reactContext, initialProps, stateWrapper);
109
+ }
110
+
111
+ private void emitMapError(ThemedReactContext context, String message, String type) {
112
+ WritableMap error = Arguments.createMap();
113
+ error.putString("message", message);
114
+ error.putString("type", type);
115
+
116
+ context
117
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
118
+ .emit("onError", error);
119
+ }
120
+
121
+ @ReactProp(name = "region")
122
+ public void setRegion(MapView view, ReadableMap region) {
123
+ view.setRegion(region);
124
+ }
125
+
126
+ @ReactProp(name = "googleRenderer")
127
+ public void setGoogleRenderer(MapView view, @Nullable String googleRenderer) {
128
+ // do nothing, passed as part of the InitialProps
129
+ }
130
+
131
+ @ReactProp(name = "liteMode", defaultBoolean = false)
132
+ public void setLiteMode(MapView view, boolean liteMode) {
133
+ googleMapOptions.liteMode(liteMode);
134
+ }
135
+
136
+ @ReactProp(name = "googleMapId")
137
+ public void setGoogleMapId(MapView view, @Nullable String googleMapId) {
138
+ if (googleMapId != null) {
139
+ googleMapOptions.mapId(googleMapId);
140
+ }
141
+ }
142
+
143
+ @ReactProp(name = "initialRegion")
144
+ public void setInitialRegion(MapView view, ReadableMap initialRegion) {
145
+ view.setInitialRegion(initialRegion);
146
+ }
147
+
148
+ @ReactProp(name = "camera")
149
+ public void setCamera(MapView view, ReadableMap camera) {
150
+ view.setCamera(camera);
151
+ }
152
+
153
+ @ReactProp(name = "initialCamera")
154
+ public void setInitialCamera(MapView view, ReadableMap initialCamera) {
155
+ view.setInitialCamera(initialCamera);
156
+ }
157
+
158
+ @ReactProp(name = "mapType")
159
+ public void setMapType(MapView view, @Nullable String mapType) {
160
+ int typeId = MAP_TYPES.get(mapType);
161
+ view.map.setMapType(typeId);
162
+ }
163
+
164
+ @ReactProp(name = "customMapStyleString")
165
+ public void setMapStyle(MapView view, @Nullable String customMapStyleString) {
166
+ view.setMapStyle(customMapStyleString);
167
+ }
168
+
169
+ @ReactProp(name = "mapPadding")
170
+ public void setMapPadding(MapView view, @Nullable ReadableMap padding) {
171
+ int left = 0;
172
+ int top = 0;
173
+ int right = 0;
174
+ int bottom = 0;
175
+ double density = (double) view.getResources().getDisplayMetrics().density;
176
+
177
+ if (padding != null) {
178
+ if (padding.hasKey("left")) {
179
+ left = (int) (padding.getDouble("left") * density);
180
+ }
181
+
182
+ if (padding.hasKey("top")) {
183
+ top = (int) (padding.getDouble("top") * density);
184
+ }
185
+
186
+ if (padding.hasKey("right")) {
187
+ right = (int) (padding.getDouble("right") * density);
188
+ }
189
+
190
+ if (padding.hasKey("bottom")) {
191
+ bottom = (int) (padding.getDouble("bottom") * density);
192
+ }
193
+ }
194
+
195
+ view.applyBaseMapPadding(left, top, right, bottom);
196
+ view.map.setPadding(left, top, right, bottom);
197
+ }
198
+
199
+ @ReactProp(name = "showsUserLocation", defaultBoolean = false)
200
+ public void setShowsUserLocation(MapView view, boolean showUserLocation) {
201
+ view.setShowsUserLocation(showUserLocation);
202
+ }
203
+
204
+ @ReactProp(name = "userLocationPriority")
205
+ public void setUserLocationPriority(MapView view, @Nullable String accuracy) {
206
+ view.setUserLocationPriority(MY_LOCATION_PRIORITY.get(accuracy));
207
+ }
208
+
209
+ @ReactProp(name = "userLocationUpdateInterval", defaultInt = 5000)
210
+ public void setUserLocationUpdateInterval(MapView view, int updateInterval) {
211
+ view.setUserLocationUpdateInterval(updateInterval);
212
+ }
213
+
214
+ @ReactProp(name = "userLocationFastestInterval", defaultInt = 5000)
215
+ public void setUserLocationFastestInterval(MapView view, int fastestInterval) {
216
+ view.setUserLocationFastestInterval(fastestInterval);
217
+ }
218
+
219
+ @ReactProp(name = "showsMyLocationButton", defaultBoolean = true)
220
+ public void setShowsMyLocationButton(MapView view, boolean showMyLocationButton) {
221
+ view.setShowsMyLocationButton(showMyLocationButton);
222
+ }
223
+
224
+ @ReactProp(name = "toolbarEnabled", defaultBoolean = true)
225
+ public void setToolbarEnabled(MapView view, boolean toolbarEnabled) {
226
+ view.setToolbarEnabled(toolbarEnabled);
227
+ }
228
+
229
+ // This is a private prop to improve performance of panDrag by disabling it when the callback
230
+ // is not set
231
+ @ReactProp(name = "handlePanDrag", defaultBoolean = false)
232
+ public void setHandlePanDrag(MapView view, boolean handlePanDrag) {
233
+ view.setHandlePanDrag(handlePanDrag);
234
+ }
235
+
236
+ @ReactProp(name = "showsTraffic", defaultBoolean = false)
237
+ public void setShowTraffic(MapView view, boolean showTraffic) {
238
+ view.map.setTrafficEnabled(showTraffic);
239
+ }
240
+
241
+ @ReactProp(name = "showsBuildings", defaultBoolean = false)
242
+ public void setShowBuildings(MapView view, boolean showBuildings) {
243
+ view.setShowBuildings(showBuildings);
244
+ }
245
+
246
+ @ReactProp(name = "showsIndoors", defaultBoolean = false)
247
+ public void setShowIndoors(MapView view, boolean showIndoors) {
248
+ view.setShowIndoors(showIndoors);
249
+ }
250
+
251
+ @ReactProp(name = "showsIndoorLevelPicker", defaultBoolean = false)
252
+ public void setShowsIndoorLevelPicker(MapView view, boolean showsIndoorLevelPicker) {
253
+ view.setShowsIndoorLevelPicker(showsIndoorLevelPicker);
254
+ }
255
+
256
+ @ReactProp(name = "showsCompass", defaultBoolean = false)
257
+ public void setShowsCompass(MapView view, boolean showsCompass) {
258
+ view.setShowsCompass(showsCompass);
259
+ }
260
+
261
+ @ReactProp(name = "scrollEnabled", defaultBoolean = false)
262
+ public void setScrollEnabled(MapView view, boolean scrollEnabled) {
263
+ view.setScrollEnabled(scrollEnabled);
264
+ }
265
+
266
+ @ReactProp(name = "zoomEnabled", defaultBoolean = false)
267
+ public void setZoomEnabled(MapView view, boolean zoomEnabled) {
268
+ view.setZoomEnabled(zoomEnabled);
269
+ }
270
+
271
+ @ReactProp(name = "zoomControlEnabled", defaultBoolean = true)
272
+ public void setZoomControlEnabled(MapView view, boolean zoomControlEnabled) {
273
+ view.setZoomControlEnabled(zoomControlEnabled);
274
+ }
275
+
276
+ @ReactProp(name = "rotateEnabled", defaultBoolean = false)
277
+ public void setRotateEnabled(MapView view, boolean rotateEnabled) {
278
+ view.setRotateEnabled(rotateEnabled);
279
+ }
280
+
281
+ @ReactProp(name = "scrollDuringRotateOrZoomEnabled", defaultBoolean = true)
282
+ public void setScrollDuringRotateOrZoomEnabled(MapView view, boolean scrollDuringRotateOrZoomEnabled) {
283
+ view.setScrollDuringRotateOrZoomEnabled(scrollDuringRotateOrZoomEnabled);
284
+ }
285
+
286
+ @ReactProp(name = "cacheEnabled", defaultBoolean = false)
287
+ public void setCacheEnabled(MapView view, boolean cacheEnabled) {
288
+ view.setCacheEnabled(cacheEnabled);
289
+ }
290
+
291
+ @ReactProp(name = "poiClickEnabled", defaultBoolean = true)
292
+ public void setPoiClickEnabled(MapView view, boolean poiClickEnabled) {
293
+ view.setPoiClickEnabled(poiClickEnabled);
294
+ }
295
+
296
+ @ReactProp(name = "loadingEnabled", defaultBoolean = false)
297
+ public void setLoadingEnabled(MapView view, boolean loadingEnabled) {
298
+ view.setLoadingEnabled(loadingEnabled);
299
+ }
300
+
301
+ @ReactProp(name = "moveOnMarkerPress", defaultBoolean = true)
302
+ public void setMoveOnMarkerPress(MapView view, boolean moveOnPress) {
303
+ view.setMoveOnMarkerPress(moveOnPress);
304
+ }
305
+
306
+ @ReactProp(name = "loadingBackgroundColor", customType = "Color")
307
+ public void setLoadingBackgroundColor(MapView view, @Nullable Integer loadingBackgroundColor) {
308
+ view.setLoadingBackgroundColor(loadingBackgroundColor);
309
+ }
310
+
311
+ @ReactProp(name = "loadingIndicatorColor", customType = "Color")
312
+ public void setLoadingIndicatorColor(MapView view, @Nullable Integer loadingIndicatorColor) {
313
+ view.setLoadingIndicatorColor(loadingIndicatorColor);
314
+ }
315
+
316
+ @ReactProp(name = "pitchEnabled", defaultBoolean = false)
317
+ public void setPitchEnabled(MapView view, boolean pitchEnabled) {
318
+ view.setPitchEnabled(pitchEnabled);
319
+ }
320
+
321
+ @ReactProp(name = "minZoomLevel")
322
+ public void setMinZoomLevel(MapView view, float minZoomLevel) {
323
+ view.setMinZoomLevel(minZoomLevel);
324
+ }
325
+
326
+ @ReactProp(name = "maxZoomLevel")
327
+ public void setMaxZoomLevel(MapView view, float maxZoomLevel) {
328
+ view.setMaxZoomLevel(maxZoomLevel);
329
+ }
330
+
331
+ @ReactProp(name = "kmlSrc")
332
+ public void setKmlSrc(MapView view, String kmlUrl) {
333
+ if (kmlUrl != null) {
334
+ view.setKmlSrc(kmlUrl);
335
+ }
336
+ }
337
+
338
+ @ReactProp(name = "accessibilityLabel")
339
+ public void setAccessibilityLabel(MapView view, @Nullable String accessibilityLabel) {
340
+ view.setTag(R.id.accessibility_label, accessibilityLabel);
341
+ }
342
+
343
+ @Override
344
+ public void receiveCommand(@NonNull MapView view, String commandId, @Nullable ReadableArray args) {
345
+ int duration;
346
+ double lat;
347
+ double lng;
348
+ double lngDelta;
349
+ double latDelta;
350
+ ReadableMap region;
351
+ ReadableMap camera;
352
+
353
+ switch (commandId) {
354
+ case "setCamera":
355
+ if (args == null) {
356
+ break;
357
+ }
358
+ camera = args.getMap(0);
359
+ view.animateToCamera(camera, 0);
360
+ break;
361
+
362
+ case "animateCamera":
363
+ if (args == null) {
364
+ break;
365
+ }
366
+ camera = args.getMap(0);
367
+ duration = args.getInt(1);
368
+ view.animateToCamera(camera, duration);
369
+ break;
370
+
371
+ case "animateToRegion":
372
+ if (args == null) {
373
+ break;
374
+ }
375
+ region = args.getMap(0);
376
+ duration = args.getInt(1);
377
+ lng = region.getDouble("longitude");
378
+ lat = region.getDouble("latitude");
379
+ lngDelta = region.getDouble("longitudeDelta");
380
+ latDelta = region.getDouble("latitudeDelta");
381
+ LatLngBounds bounds = new LatLngBounds(
382
+ new LatLng(lat - latDelta / 2, lng - lngDelta / 2), // southwest
383
+ new LatLng(lat + latDelta / 2, lng + lngDelta / 2) // northeast
384
+ );
385
+ view.animateToRegion(bounds, duration);
386
+ break;
387
+
388
+ case "fitToElements":
389
+ if (args == null) {
390
+ break;
391
+ }
392
+ view.fitToElements(args.getMap(0), args.getBoolean(1));
393
+ break;
394
+
395
+ case "fitToSuppliedMarkers":
396
+ if (args == null) {
397
+ break;
398
+ }
399
+ view.fitToSuppliedMarkers(args.getArray(0), args.getMap(1), args.getBoolean(2));
400
+ break;
401
+
402
+ case "fitToCoordinates":
403
+ if (args == null) {
404
+ break;
405
+ }
406
+ view.fitToCoordinates(args.getArray(0), args.getMap(1), args.getBoolean(2));
407
+ break;
408
+
409
+ case "setMapBoundaries":
410
+ if (args == null) {
411
+ break;
412
+ }
413
+ view.setMapBoundaries(args.getMap(0), args.getMap(1));
414
+ break;
415
+
416
+ case "setIndoorActiveLevelIndex":
417
+ if (args == null) {
418
+ break;
419
+ }
420
+ view.setIndoorActiveLevelIndex(args.getInt(0));
421
+ break;
422
+ }
423
+ }
424
+
425
+ @Override
426
+ @Nullable
427
+ public Map getExportedCustomDirectEventTypeConstants() {
428
+ Map<String, Map<String, String>> map = MapBuilder.of(
429
+ "onMapReady", MapBuilder.of("registrationName", "onMapReady"),
430
+ "onPress", MapBuilder.of("registrationName", "onPress"),
431
+ "onLongPress", MapBuilder.of("registrationName", "onLongPress"),
432
+ "onMarkerPress", MapBuilder.of("registrationName", "onMarkerPress"),
433
+ "onCalloutPress", MapBuilder.of("registrationName", "onCalloutPress")
434
+ );
435
+
436
+ map.putAll(MapBuilder.of(
437
+ "onUserLocationChange", MapBuilder.of("registrationName", "onUserLocationChange"),
438
+ "onMarkerDragStart", MapBuilder.of("registrationName", "onMarkerDragStart"),
439
+ "onMarkerDrag", MapBuilder.of("registrationName", "onMarkerDrag"),
440
+ "onMarkerDragEnd", MapBuilder.of("registrationName", "onMarkerDragEnd"),
441
+ "onPanDrag", MapBuilder.of("registrationName", "onPanDrag"),
442
+ "onKmlReady", MapBuilder.of("registrationName", "onKmlReady"),
443
+ "onPoiClick", MapBuilder.of("registrationName", "onPoiClick")
444
+ ));
445
+
446
+ map.putAll(MapBuilder.of(
447
+ "onIndoorLevelActivated", MapBuilder.of("registrationName", "onIndoorLevelActivated"),
448
+ "onIndoorBuildingFocused", MapBuilder.of("registrationName", "onIndoorBuildingFocused"),
449
+ "onDoublePress", MapBuilder.of("registrationName", "onDoublePress"),
450
+ "onMapLoaded", MapBuilder.of("registrationName", "onMapLoaded"),
451
+ "onMarkerSelect", MapBuilder.of("registrationName", "onMarkerSelect"),
452
+ "onMarkerDeselect", MapBuilder.of("registrationName", "onMarkerDeselect"),
453
+ "onRegionChangeStart", MapBuilder.of("registrationName", "onRegionChangeStart")
454
+ ));
455
+
456
+ return map;
457
+ }
458
+
459
+ @Override
460
+ public LayoutShadowNode createShadowNodeInstance() {
461
+ // A custom shadow node is needed in order to pass back the width/height of the map to the
462
+ // view manager so that it can start applying camera moves with bounds.
463
+ return new SizeReportingShadowNode();
464
+ }
465
+
466
+ @Override
467
+ public void addView(MapView parent, View child, int index) {
468
+ parent.addFeature(child, index);
469
+ }
470
+
471
+ @Override
472
+ public int getChildCount(MapView view) {
473
+ return view.getFeatureCount();
474
+ }
475
+
476
+ @Override
477
+ public View getChildAt(MapView view, int index) {
478
+ return view.getFeatureAt(index);
479
+ }
480
+
481
+ @Override
482
+ public void removeViewAt(MapView parent, int index) {
483
+ parent.removeFeatureAt(index);
484
+ }
485
+
486
+ @Override
487
+ public void updateExtraData(MapView view, Object extraData) {
488
+ view.updateExtraData(extraData);
489
+ }
490
+
491
+ void pushEvent(ThemedReactContext context, View view, String name, WritableMap data) {
492
+ context
493
+ .getReactApplicationContext()
494
+ .getJSModule(RCTEventEmitter.class)
495
+ .receiveEvent(view.getId(), name, data);
496
+ }
497
+
498
+ @Override
499
+ public void onDropViewInstance(MapView view) {
500
+ view.doDestroy();
501
+ super.onDropViewInstance(view);
502
+ }
503
+
504
+ }