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
@@ -0,0 +1,86 @@
1
+ package com.rnmaps.fabric;
2
+
3
+ import com.facebook.react.bridge.Arguments;
4
+ import com.facebook.react.bridge.WritableArray;
5
+ import com.facebook.react.bridge.WritableMap;
6
+
7
+ import org.json.JSONArray;
8
+ import org.json.JSONException;
9
+ import org.json.JSONObject;
10
+
11
+ import java.util.Iterator;
12
+
13
+ public class JSONUtil {
14
+ public static WritableMap convertJsonToWritable(JSONObject jsonObject) throws JSONException {
15
+ WritableMap map = Arguments.createMap();
16
+ Iterator<String> iterator = jsonObject.keys();
17
+
18
+ while (iterator.hasNext()) {
19
+ String key = iterator.next();
20
+ Object value = jsonObject.get(key);
21
+
22
+ if (value == JSONObject.NULL) {
23
+ map.putNull(key);
24
+ }
25
+ // Check primitive types first
26
+ else if (value instanceof Integer) {
27
+ map.putInt(key, jsonObject.getInt(key));
28
+ }
29
+ else if (value instanceof Long) {
30
+ map.putDouble(key, ((Long) value).doubleValue());
31
+ }
32
+ else if (value instanceof Double) {
33
+ map.putDouble(key, jsonObject.getDouble(key));
34
+ }
35
+ else if (value instanceof Boolean) {
36
+ map.putBoolean(key, jsonObject.getBoolean(key));
37
+ }
38
+ else if (value instanceof String) {
39
+ map.putString(key, jsonObject.getString(key));
40
+ }
41
+ // Check complex types
42
+ else if (value instanceof JSONObject) {
43
+ map.putMap(key, convertJsonToWritable(jsonObject.getJSONObject(key)));
44
+ }
45
+ else if (value instanceof JSONArray) {
46
+ map.putArray(key, convertJsonArrayToWritable(jsonObject.getJSONArray(key)));
47
+ }
48
+ }
49
+
50
+ return map;
51
+ }
52
+ public static WritableArray convertJsonArrayToWritable(JSONArray jsonArray) throws JSONException {
53
+ WritableArray array = Arguments.createArray();
54
+
55
+ for (int i = 0; i < jsonArray.length(); i++) {
56
+ Object value = jsonArray.get(i);
57
+
58
+ if (value == JSONObject.NULL) {
59
+ array.pushNull();
60
+ }
61
+ else if (value instanceof Integer) {
62
+ array.pushInt((Integer) value);
63
+ }
64
+ else if (value instanceof Long) {
65
+ array.pushDouble(((Long) value).doubleValue());
66
+ }
67
+ else if (value instanceof Double) {
68
+ array.pushDouble((Double) value);
69
+ }
70
+ else if (value instanceof Boolean) {
71
+ array.pushBoolean((Boolean) value);
72
+ }
73
+ else if (value instanceof String) {
74
+ array.pushString((String) value);
75
+ }
76
+ else if (value instanceof JSONObject) {
77
+ array.pushMap(convertJsonToWritable((JSONObject) value));
78
+ }
79
+ else if (value instanceof JSONArray) {
80
+ array.pushArray(convertJsonArrayToWritable((JSONArray) value));
81
+ }
82
+ }
83
+
84
+ return array;
85
+ }
86
+ }
@@ -0,0 +1,623 @@
1
+ package com.rnmaps.fabric;
2
+
3
+
4
+ import static com.rnmaps.maps.MapManager.MY_LOCATION_PRIORITY;
5
+
6
+ import android.util.Log;
7
+ import android.view.View;
8
+
9
+ import androidx.annotation.NonNull;
10
+ import androidx.annotation.Nullable;
11
+
12
+ import org.json.JSONArray;
13
+ import org.json.JSONException;
14
+ import org.json.JSONObject;
15
+
16
+ import com.facebook.react.bridge.ReactApplicationContext;
17
+ import com.facebook.react.bridge.ReadableMap;
18
+ import com.facebook.react.bridge.WritableArray;
19
+ import com.facebook.react.bridge.WritableMap;
20
+ import com.facebook.react.module.annotations.ReactModule;
21
+ import com.facebook.react.uimanager.LayoutShadowNode;
22
+ import com.facebook.react.uimanager.ReactStylesDiffMap;
23
+ import com.facebook.react.uimanager.StateWrapper;
24
+ import com.facebook.react.uimanager.ThemedReactContext;
25
+ import com.facebook.react.uimanager.ViewGroupManager;
26
+ import com.facebook.react.uimanager.ViewManagerDelegate;
27
+ import com.facebook.react.viewmanagers.RNMapsMapViewManagerInterface;
28
+ import com.facebook.react.viewmanagers.RNMapsMapViewManagerDelegate;
29
+ import com.google.android.gms.maps.GoogleMap;
30
+ import com.google.android.gms.maps.GoogleMapOptions;
31
+ import com.google.android.gms.maps.MapsInitializer;
32
+ import com.google.android.gms.maps.model.CameraPosition;
33
+ import com.google.android.gms.maps.model.LatLng;
34
+ import com.google.android.gms.maps.model.LatLngBounds;
35
+ import com.google.android.gms.maps.model.MapColorScheme;
36
+ import com.rnmaps.maps.MapMarker;
37
+ import com.rnmaps.maps.MapOverlay;
38
+ import com.rnmaps.maps.MapView;
39
+ import com.rnmaps.maps.SizeReportingShadowNode;
40
+
41
+ import java.util.Map;
42
+
43
+ @ReactModule(name = MapViewManager.REACT_CLASS)
44
+ public class MapViewManager extends ViewGroupManager<MapView> implements RNMapsMapViewManagerInterface<MapView> {
45
+
46
+ private static boolean rendererInitialized = false;
47
+ private final RNMapsMapViewManagerDelegate<MapView, MapViewManager> delegate =
48
+ new RNMapsMapViewManagerDelegate<>(this);
49
+
50
+
51
+ public MapViewManager(ReactApplicationContext context) {
52
+ super(context);
53
+ }
54
+
55
+
56
+ @Override
57
+ public ViewManagerDelegate<MapView> getDelegate() {
58
+ return delegate;
59
+ }
60
+
61
+ @Override
62
+ public String getName() {
63
+ return REACT_CLASS;
64
+ }
65
+
66
+ @Override
67
+ public MapView createViewInstance(ThemedReactContext context) {
68
+ return new MapView(context, new GoogleMapOptions());
69
+ }
70
+
71
+ @Override
72
+ public int getChildCount(MapView view) {
73
+ return view.getFeatureCount();
74
+ }
75
+
76
+ @Override
77
+ public View getChildAt(MapView view, int index) {
78
+ return view.getFeatureAt(index);
79
+ }
80
+
81
+ @Override
82
+ public void removeViewAt(MapView parent, int index) {
83
+ parent.removeFeatureAt(index);
84
+ }
85
+
86
+ @Override
87
+ protected void setupViewRecycling() {
88
+ // override parent to block recycling / allow reliable GoogleMapsOptions passing
89
+ }
90
+
91
+ private GoogleMapOptions optionsForInitialProps(ReactStylesDiffMap initialProps){
92
+ GoogleMapOptions options = new GoogleMapOptions();
93
+ if (initialProps != null) {
94
+ setGoogleRenderer(null, initialProps.getString("googleRenderer"));
95
+ if (initialProps.hasKey("liteMode")) {
96
+ options.liteMode(initialProps.getBoolean("liteMode", false));
97
+ }
98
+ if (initialProps.hasKey("googleMapId")) {
99
+ String googleMapId = initialProps.getString("googleMapId");
100
+ options.mapId(googleMapId);
101
+ }
102
+ if (initialProps.getMap("initialCamera") != null) {
103
+ ReadableMap initialCamera = initialProps.getMap("initialCamera");
104
+ CameraPosition camera = MapView.cameraPositionFromMap(initialCamera);
105
+ if (camera != null) {
106
+ options.camera(camera);
107
+ }
108
+ }
109
+ if (initialProps.hasKey("mapType")) {
110
+ if (initialProps.getString("mapType") != null) {
111
+ options.mapType(mapTypeFromStrValue(initialProps.getString("mapType")));
112
+ }
113
+ }
114
+ if (initialProps.hasKey("minZoom")) {
115
+ if (initialProps.getInt("minZoom", 0) != 0) {
116
+ options.minZoomPreference(initialProps.getInt("minZoom", 0));
117
+ }
118
+ }
119
+ if (initialProps.hasKey("maxZoom")) {
120
+ if (initialProps.getInt("maxZoom", 0) != 0) {
121
+ options.maxZoomPreference(initialProps.getInt("maxZoom", 0));
122
+ }
123
+ }
124
+ if (initialProps.hasKey("userInterfaceStyle") && !initialProps.hasKey("liteMode")){
125
+ String style = initialProps.getString("userInterfaceStyle");
126
+ if ("system".equals(style)) {
127
+ options.mapColorScheme(MapColorScheme.FOLLOW_SYSTEM);
128
+ } else if ("light".equals(style)){
129
+ options.mapColorScheme(MapColorScheme.LIGHT);
130
+ } else if ("dark".equals(style)){
131
+ options.mapColorScheme(MapColorScheme.DARK);
132
+ }
133
+ }
134
+ if (initialProps.hasKey("pitchEnabled")) {
135
+ options.tiltGesturesEnabled(initialProps.getBoolean("pitchEnabled", true));
136
+ }
137
+ if (initialProps.hasKey("rotateEnabled")) {
138
+ options.rotateGesturesEnabled(initialProps.getBoolean("rotateEnabled", true));
139
+ }
140
+ if (initialProps.hasKey("scrollDuringRotateOrZoomEnabled")) {
141
+ options.scrollGesturesEnabledDuringRotateOrZoom(initialProps.getBoolean("scrollDuringRotateOrZoomEnabled", true));
142
+ }
143
+ if (initialProps.hasKey("scrollEnabled")) {
144
+ options.scrollGesturesEnabled(initialProps.getBoolean("scrollEnabled", true));
145
+ }
146
+ if (initialProps.hasKey("showsCompass")) {
147
+ options.compassEnabled(initialProps.getBoolean("showsCompass", true));
148
+ }
149
+ if (initialProps.hasKey("toolbarEnabled")) {
150
+ options.mapToolbarEnabled(initialProps.getBoolean("toolbarEnabled", true));
151
+ }
152
+ if (initialProps.hasKey("zoomControlEnabled")) {
153
+ options.zoomControlsEnabled(initialProps.getBoolean("zoomControlEnabled", true));
154
+ }
155
+ if (initialProps.hasKey("zoomEnabled")) {
156
+ options.zoomGesturesEnabled(initialProps.getBoolean("zoomEnabled", true));
157
+ }
158
+ }
159
+ return options;
160
+ }
161
+ @Override
162
+ protected MapView createViewInstance(int reactTag, @NonNull ThemedReactContext reactContext, @Nullable ReactStylesDiffMap initialProps, @Nullable StateWrapper stateWrapper) {
163
+ MapView view = null;
164
+ view = new MapView(reactContext, optionsForInitialProps(initialProps));
165
+ view.setId(reactTag);
166
+ this.addEventEmitters(reactContext, view);
167
+ if (initialProps != null) {
168
+ this.updateProperties(view, initialProps);
169
+ }
170
+ if (stateWrapper != null) {
171
+ Object extraData = this.updateState(view, initialProps, stateWrapper);
172
+ if (extraData != null) {
173
+ this.updateExtraData(view, extraData);
174
+ }
175
+ }
176
+ return view;
177
+ }
178
+
179
+
180
+ public static final String REACT_CLASS = "RNMapsMapView";
181
+
182
+ @Nullable
183
+ @Override
184
+ public Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
185
+ return MapView.getExportedCustomBubblingEventTypeConstants();
186
+ }
187
+
188
+
189
+ @Override
190
+ public LayoutShadowNode createShadowNodeInstance() {
191
+ // A custom shadow node is needed in order to pass back the width/height of the map to the
192
+ // view manager so that it can start applying camera moves with bounds.
193
+ return new SizeReportingShadowNode();
194
+ }
195
+
196
+ @Nullable
197
+ @Override
198
+ public Map<String, Object> getExportedCustomDirectEventTypeConstants() {
199
+ return MapView.getExportedCustomDirectEventTypeConstants();
200
+ }
201
+
202
+ @Override
203
+ public void setCacheEnabled(MapView view, boolean value) {
204
+ view.setCacheEnabled(value);
205
+ }
206
+
207
+ @Override
208
+ public void setCamera(MapView view, @Nullable ReadableMap value) {
209
+ view.setCamera(value);
210
+ }
211
+
212
+ @Override
213
+ public void setCompassOffset(MapView view, @Nullable ReadableMap value) {
214
+ // not supported
215
+ }
216
+
217
+ @Override
218
+ public void setFollowsUserLocation(MapView view, boolean value) {
219
+ // not supported
220
+ }
221
+
222
+ @Override
223
+ public void setPoiClickEnabled(MapView view, boolean value) {
224
+ view.setPoiClickEnabled(value);
225
+ }
226
+
227
+ @Override
228
+ public void setInitialCamera(MapView view, @Nullable ReadableMap value) {
229
+ CameraPosition camera = MapView.cameraPositionFromMap(value);
230
+ if (camera != null) {
231
+ view.setInitialCameraSet(true);
232
+ }
233
+ }
234
+
235
+
236
+ @Override
237
+ public void setInitialRegion(MapView view, @Nullable ReadableMap value) {
238
+ view.setInitialRegion(value);
239
+ }
240
+
241
+ @Override
242
+ public void setKmlSrc(MapView view, @Nullable String value) {
243
+ view.setKmlSrc(value);
244
+ }
245
+
246
+ @Override
247
+ public void setLegalLabelInsets(MapView view, @Nullable ReadableMap value) {
248
+ // not supported
249
+ }
250
+
251
+ @Override
252
+ public void setLiteMode(MapView view, boolean value) {
253
+ // do nothing (initialProp)
254
+ }
255
+
256
+ @Override
257
+ public void setGoogleMapId(MapView view, @Nullable String value) {
258
+ // do nothing (initialProp)
259
+ }
260
+
261
+ @Override
262
+ public void setGoogleRenderer(MapView view, @Nullable String value) {
263
+ if (!rendererInitialized) {
264
+ MapsInitializer.Renderer renderer = MapsInitializer.Renderer.LATEST;
265
+ if ("LEGACY".equals(value)) {
266
+ renderer = MapsInitializer.Renderer.LEGACY;
267
+ }
268
+ MapsInitializer.initialize(getReactApplicationContext(), renderer, r -> Log.d("AirMapRenderer", "Init with renderer: " + r));
269
+ rendererInitialized = true;
270
+ }
271
+
272
+ }
273
+
274
+ @Override
275
+ public void setLoadingBackgroundColor(MapView view, @Nullable Integer value) {
276
+ view.setLoadingBackgroundColor(value);
277
+ }
278
+
279
+ @Override
280
+ public void setLoadingEnabled(MapView view, boolean value) {
281
+ view.setLoadingEnabled(value);
282
+ }
283
+
284
+ @Override
285
+ public void setLoadingIndicatorColor(MapView view, @Nullable Integer value) {
286
+ view.setLoadingIndicatorColor(value);
287
+ }
288
+
289
+ @Override
290
+ public void setMapPadding(MapView view, @Nullable ReadableMap padding) {
291
+ int left = 0;
292
+ int top = 0;
293
+ int right = 0;
294
+ int bottom = 0;
295
+ double density = (double) view.getResources().getDisplayMetrics().density;
296
+
297
+ if (padding != null) {
298
+ if (padding.hasKey("left")) {
299
+ left = (int) (padding.getDouble("left") * density);
300
+ }
301
+
302
+ if (padding.hasKey("top")) {
303
+ top = (int) (padding.getDouble("top") * density);
304
+ }
305
+
306
+ if (padding.hasKey("right")) {
307
+ right = (int) (padding.getDouble("right") * density);
308
+ }
309
+
310
+ if (padding.hasKey("bottom")) {
311
+ bottom = (int) (padding.getDouble("bottom") * density);
312
+ }
313
+ }
314
+
315
+ view.applyBaseMapPadding(left, top, right, bottom);
316
+ }
317
+
318
+ @Override
319
+ public void addView(MapView parent, View child, int index) {
320
+ if (child instanceof MapMarker && ((MapMarker) child).isLoadingImage()){
321
+ ((MapMarker) child).setImageLoadedListener((uri, drawable, b) -> {
322
+ parent.addFeature(child, parent.getFeatureCount());
323
+ });
324
+ } else {
325
+ parent.addFeature(child, index);
326
+ }
327
+ }
328
+
329
+ @Override
330
+ public void setMapType(MapView view, @Nullable String value) {
331
+ view.setMapType(mapTypeFromStrValue(value));
332
+ }
333
+
334
+ private static int mapTypeFromStrValue(String value) {
335
+ int mapType;
336
+ //hybrid | none | satellite | standard | terrain
337
+ if ("hybrid".equals(value)) {
338
+ mapType = GoogleMap.MAP_TYPE_HYBRID;
339
+ } else if ("none".equals(value)) {
340
+ mapType = GoogleMap.MAP_TYPE_NONE;
341
+ } else if ("satellite".equals(value)) {
342
+ mapType = GoogleMap.MAP_TYPE_SATELLITE;
343
+ } else if ("standard".equals(value)) {
344
+ mapType = GoogleMap.MAP_TYPE_NORMAL;
345
+ } else if ("terrain".equals(value)) {
346
+ mapType = GoogleMap.MAP_TYPE_TERRAIN;
347
+ } else {
348
+ mapType = GoogleMap.MAP_TYPE_NORMAL;
349
+ }
350
+ return mapType;
351
+ }
352
+
353
+ @Override
354
+ public void setMaxDelta(MapView view, double value) {
355
+ // not supported
356
+ }
357
+
358
+ @Override
359
+ public void setMaxZoom(MapView view, float value) {
360
+ view.setMaxZoomLevel(value);
361
+ }
362
+
363
+ @Override
364
+ public void setMinDelta(MapView view, double value) {
365
+ // not supported
366
+ }
367
+
368
+ @Override
369
+ public void setMinZoom(MapView view, float value) {
370
+ view.setMinZoomLevel(value);
371
+ }
372
+
373
+ @Override
374
+ public void setMoveOnMarkerPress(MapView view, boolean value) {
375
+ view.setMoveOnMarkerPress(value);
376
+ }
377
+
378
+ @Override
379
+ public void setHandlePanDrag(MapView view, boolean value) {
380
+ view.setHandlePanDrag(value);
381
+ }
382
+
383
+ @Override
384
+ public void setPaddingAdjustmentBehavior(MapView view, @Nullable String value) {
385
+ // not supported
386
+ }
387
+
388
+ @Override
389
+ public void setPitchEnabled(MapView view, boolean value) {
390
+ view.setPitchEnabled(value);
391
+ }
392
+
393
+ @Override
394
+ public void setRegion(MapView view, @Nullable ReadableMap value) {
395
+ view.setRegion(value);
396
+ }
397
+
398
+ @Override
399
+ public void setRotateEnabled(MapView view, boolean value) {
400
+ view.setRotateEnabled(value);
401
+ }
402
+
403
+ @Override
404
+ public void setScrollDuringRotateOrZoomEnabled(MapView view, boolean value) {
405
+ view.setScrollDuringRotateOrZoomEnabled(value);
406
+ }
407
+
408
+ @Override
409
+ public void setScrollEnabled(MapView view, boolean value) {
410
+ view.setScrollEnabled(value);
411
+ }
412
+
413
+ @Override
414
+ public void setShowsBuildings(MapView view, boolean value) {
415
+ view.setShowBuildings(value);
416
+ }
417
+
418
+ @Override
419
+ public void setShowsCompass(MapView view, boolean value) {
420
+ view.setShowsCompass(value);
421
+ }
422
+
423
+ @Override
424
+ public void setShowsIndoorLevelPicker(MapView view, boolean value) {
425
+ view.setShowsIndoorLevelPicker(value);
426
+ }
427
+
428
+ @Override
429
+ public void setShowsIndoors(MapView view, boolean value) {
430
+ view.setShowIndoors(value);
431
+ }
432
+
433
+ @Override
434
+ public void setShowsMyLocationButton(MapView view, boolean value) {
435
+ view.setShowsMyLocationButton(value);
436
+ }
437
+
438
+ @Override
439
+ public void setShowsScale(MapView view, boolean value) {
440
+ // not supported
441
+ }
442
+
443
+ @Override
444
+ public void setShowsUserLocation(MapView view, boolean value) {
445
+ view.setShowsUserLocation(value);
446
+ }
447
+
448
+ @Override
449
+ public void setTintColor(MapView view, @Nullable Integer value) {
450
+ // not supported
451
+ }
452
+
453
+ @Override
454
+ public void setToolbarEnabled(MapView view, boolean value) {
455
+ view.setToolbarEnabled(value);
456
+ }
457
+
458
+ @Override
459
+ public void setUserInterfaceStyle(MapView view, @Nullable String value) {
460
+ // do nothing (initialProp)
461
+ }
462
+
463
+ @Override
464
+ public void setCustomMapStyleString(MapView view, @Nullable String value) {
465
+ view.setMapStyle(value);
466
+ }
467
+
468
+ @Override
469
+ public void setUserLocationAnnotationTitle(MapView view, @Nullable String value) {
470
+ // not supported
471
+ }
472
+
473
+ @Override
474
+ public void setUserLocationCalloutEnabled(MapView view, boolean value) {
475
+ // not supported
476
+ }
477
+
478
+ @Override
479
+ public void setUserLocationFastestInterval(MapView view, int value) {
480
+ view.setUserLocationFastestInterval(value);
481
+ }
482
+
483
+ @Override
484
+ public void setUserLocationPriority(MapView view, @Nullable String value) {
485
+ view.setUserLocationPriority(MY_LOCATION_PRIORITY.get(value));
486
+ }
487
+
488
+ @Override
489
+ public void setUserLocationUpdateInterval(MapView view, int value) {
490
+ view.setUserLocationUpdateInterval(value);
491
+ }
492
+
493
+ @Override
494
+ public void setZoomControlEnabled(MapView view, boolean value) {
495
+ view.setZoomControlEnabled(value);
496
+ }
497
+
498
+ @Override
499
+ public void setZoomEnabled(MapView view, boolean value) {
500
+ view.setZoomEnabled(value);
501
+ }
502
+
503
+ @Override
504
+ public void setShowsTraffic(MapView view, boolean value) {
505
+ view.setShowsTraffic(value);
506
+ }
507
+
508
+ @Override
509
+ public void setZoomTapEnabled(MapView view, boolean value) {
510
+ // not supported
511
+ }
512
+
513
+ @Override
514
+ public void setCameraZoomRange(MapView view, @Nullable ReadableMap value) {
515
+ // not supported
516
+ }
517
+
518
+ @Override
519
+ public void animateToRegion(MapView view, String regionJSON, int duration) {
520
+ try {
521
+ JSONObject region = new JSONObject(regionJSON);
522
+ double lng = region.getDouble("longitude");
523
+ double lat = region.getDouble("latitude");
524
+ double lngDelta = region.getDouble("longitudeDelta");
525
+ double latDelta = region.getDouble("latitudeDelta");
526
+ LatLngBounds bounds = new LatLngBounds(
527
+ new LatLng(lat - latDelta / 2, lng - lngDelta / 2), // southwest
528
+ new LatLng(lat + latDelta / 2, lng + lngDelta / 2) // northeast
529
+ );
530
+ view.animateToRegion(bounds, duration);
531
+ } catch (JSONException e) {
532
+ throw new RuntimeException(e);
533
+ }
534
+
535
+ }
536
+
537
+ @Override
538
+ public void setCamera(MapView view, String cameraJSON) {
539
+ try {
540
+ JSONObject camera = new JSONObject(cameraJSON);
541
+ CameraPosition position = view.cameraPositionFromJSON(camera);
542
+ view.moveToCamera(position);
543
+ } catch (JSONException e) {
544
+ Log.e("MapViewManager", "parse camera exception " + e);
545
+ }
546
+ }
547
+
548
+ @Override
549
+ public void animateCamera(MapView view, String cameraJSON, int duration) {
550
+ try {
551
+ JSONObject camera = new JSONObject(cameraJSON);
552
+ CameraPosition position = view.cameraPositionFromJSON(camera);
553
+ view.animateToCamera(position, duration);
554
+ } catch (JSONException e) {
555
+ Log.e("MapViewManager", "parse camera exception " + e);
556
+ }
557
+ }
558
+
559
+ @Override
560
+ public void fitToElements(MapView view, String edgePaddingJSON, boolean animated) {
561
+ try {
562
+ WritableMap map = null;
563
+ if (edgePaddingJSON != null) {
564
+ JSONObject jsonObject = new JSONObject(edgePaddingJSON);
565
+ map = JSONUtil.convertJsonToWritable(jsonObject);
566
+ }
567
+ view.fitToElements(map, animated);
568
+ } catch (JSONException e){
569
+ Log.e("MapViewManager", "parse edgePaddingJSON exception " + e);
570
+ }
571
+
572
+ }
573
+
574
+ @Override
575
+ public void fitToSuppliedMarkers(MapView view, String markersJSON, String edgePaddingJSON, boolean animated) {
576
+ try {
577
+ WritableArray markers = null;
578
+ if (markersJSON != null) {
579
+ JSONArray array = new JSONArray(markersJSON);
580
+ markers = JSONUtil.convertJsonArrayToWritable(array);
581
+ }
582
+ WritableMap edgePadding = null;
583
+ if (edgePaddingJSON != null) {
584
+ JSONObject jsonObject = new JSONObject(edgePaddingJSON);
585
+ edgePadding = JSONUtil.convertJsonToWritable(jsonObject);
586
+ }
587
+ view.fitToSuppliedMarkers(markers, edgePadding, animated);
588
+ } catch (JSONException e) {
589
+ throw new RuntimeException(e);
590
+ }
591
+
592
+ }
593
+
594
+ @Override
595
+ public void fitToCoordinates(MapView view, String coordinatesJSON, String edgePaddingJSON, boolean animated) {
596
+ try {
597
+ WritableArray coordinates = null;
598
+ if (coordinatesJSON != null) {
599
+ JSONArray array = new JSONArray(coordinatesJSON);
600
+ coordinates = JSONUtil.convertJsonArrayToWritable(array);
601
+ }
602
+ WritableMap edgePadding = null;
603
+ if (edgePaddingJSON != null) {
604
+ JSONObject jsonObject = new JSONObject(edgePaddingJSON);
605
+ edgePadding = JSONUtil.convertJsonToWritable(jsonObject);
606
+ }
607
+ view.fitToCoordinates(coordinates, edgePadding, animated);
608
+ } catch (JSONException e) {
609
+ throw new RuntimeException(e);
610
+ }
611
+ }
612
+
613
+ @Override
614
+ public void setIndoorActiveLevelIndex(MapView view, int activeLevelIndex) {
615
+ view.setIndoorActiveLevelIndex(activeLevelIndex);
616
+ }
617
+
618
+ @Override
619
+ public void onDropViewInstance(MapView view) {
620
+ super.onDropViewInstance(view);
621
+ view.onDestroy();
622
+ }
623
+ }