react-native-maps 0.31.0 → 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,690 +0,0 @@
1
- //
2
- // AIRGoogleMapManager.m
3
- // AirMaps
4
- //
5
- // Created by Gil Birman on 9/1/16.
6
- //
7
-
8
- #ifdef HAVE_GOOGLE_MAPS
9
-
10
-
11
- #import "AIRGoogleMapManager.h"
12
- #import <React/RCTViewManager.h>
13
- #import <React/RCTBridge.h>
14
- #import <React/RCTUIManager.h>
15
- #import <React/RCTConvert+CoreLocation.h>
16
- #import <React/RCTEventDispatcher.h>
17
- #import <React/RCTViewManager.h>
18
- #import <React/RCTConvert.h>
19
- #import <React/UIView+React.h>
20
- #import "RCTConvert+GMSMapViewType.h"
21
- #import "AIRGoogleMap.h"
22
- #import "AIRMapMarker.h"
23
- #import "AIRMapPolyline.h"
24
- #import "AIRMapPolygon.h"
25
- #import "AIRMapCircle.h"
26
- #import "SMCalloutView.h"
27
- #import "AIRGoogleMapMarker.h"
28
- #import "RCTConvert+AirMap.h"
29
-
30
- #import <MapKit/MapKit.h>
31
- #import <QuartzCore/QuartzCore.h>
32
-
33
- static NSString *const RCTMapViewKey = @"MapView";
34
-
35
-
36
- @interface AIRGoogleMapManager() <GMSMapViewDelegate>
37
- {
38
- BOOL didCallOnMapReady;
39
- }
40
- @end
41
-
42
- @implementation AIRGoogleMapManager
43
-
44
- RCT_EXPORT_MODULE()
45
-
46
- - (UIView *)view
47
- {
48
- AIRGoogleMap *map = [AIRGoogleMap new];
49
- map.bridge = self.bridge;
50
- map.delegate = self;
51
- map.isAccessibilityElement = NO;
52
- map.accessibilityElementsHidden = NO;
53
- map.settings.consumesGesturesInView = NO;
54
-
55
- UIPanGestureRecognizer *drag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
56
- [drag setMinimumNumberOfTouches:1];
57
- [drag setMaximumNumberOfTouches:1];
58
- [map addGestureRecognizer:drag];
59
-
60
- UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
61
- [map addGestureRecognizer:pinch];
62
-
63
- return map;
64
- }
65
-
66
- RCT_EXPORT_VIEW_PROPERTY(isAccessibilityElement, BOOL)
67
- RCT_REMAP_VIEW_PROPERTY(testID, accessibilityIdentifier, NSString)
68
- RCT_EXPORT_VIEW_PROPERTY(initialCamera, GMSCameraPosition)
69
- RCT_REMAP_VIEW_PROPERTY(camera, cameraProp, GMSCameraPosition)
70
- RCT_EXPORT_VIEW_PROPERTY(initialRegion, MKCoordinateRegion)
71
- RCT_EXPORT_VIEW_PROPERTY(region, MKCoordinateRegion)
72
- RCT_EXPORT_VIEW_PROPERTY(showsBuildings, BOOL)
73
- RCT_EXPORT_VIEW_PROPERTY(showsCompass, BOOL)
74
- //RCT_EXPORT_VIEW_PROPERTY(showsScale, BOOL) // Not supported by GoogleMaps
75
- RCT_EXPORT_VIEW_PROPERTY(showsTraffic, BOOL)
76
- RCT_EXPORT_VIEW_PROPERTY(zoomEnabled, BOOL)
77
- RCT_EXPORT_VIEW_PROPERTY(rotateEnabled, BOOL)
78
- RCT_EXPORT_VIEW_PROPERTY(scrollEnabled, BOOL)
79
- RCT_EXPORT_VIEW_PROPERTY(scrollDuringRotateOrZoomEnabled, BOOL)
80
- RCT_EXPORT_VIEW_PROPERTY(pitchEnabled, BOOL)
81
- RCT_EXPORT_VIEW_PROPERTY(zoomTapEnabled, BOOL)
82
- RCT_EXPORT_VIEW_PROPERTY(showsUserLocation, BOOL)
83
- RCT_EXPORT_VIEW_PROPERTY(showsMyLocationButton, BOOL)
84
- RCT_EXPORT_VIEW_PROPERTY(showsIndoors, BOOL)
85
- RCT_EXPORT_VIEW_PROPERTY(showsIndoorLevelPicker, BOOL)
86
- RCT_EXPORT_VIEW_PROPERTY(customMapStyleString, NSString)
87
- RCT_EXPORT_VIEW_PROPERTY(mapPadding, UIEdgeInsets)
88
- RCT_REMAP_VIEW_PROPERTY(paddingAdjustmentBehavior, paddingAdjustmentBehaviorString, NSString)
89
- RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTBubblingEventBlock)
90
- RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTBubblingEventBlock)
91
- RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTBubblingEventBlock)
92
- RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
93
- RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
94
- RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTBubblingEventBlock)
95
- RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTBubblingEventBlock)
96
- RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
97
- RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
98
- RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
99
- RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
100
- RCT_EXPORT_VIEW_PROPERTY(onPoiClick, RCTDirectEventBlock)
101
- RCT_EXPORT_VIEW_PROPERTY(onIndoorLevelActivated, RCTDirectEventBlock)
102
- RCT_EXPORT_VIEW_PROPERTY(onIndoorBuildingFocused, RCTDirectEventBlock)
103
- RCT_EXPORT_VIEW_PROPERTY(mapType, GMSMapViewType)
104
- RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, CGFloat)
105
- RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, CGFloat)
106
- RCT_EXPORT_VIEW_PROPERTY(kmlSrc, NSString)
107
-
108
- RCT_EXPORT_METHOD(getCamera:(nonnull NSNumber *)reactTag
109
- resolver: (RCTPromiseResolveBlock)resolve
110
- rejecter:(RCTPromiseRejectBlock)reject)
111
- {
112
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
113
- id view = viewRegistry[reactTag];
114
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
115
- reject(@"Invalid argument", [NSString stringWithFormat:@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view], NULL);
116
- } else {
117
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
118
- resolve(@{
119
- @"center": @{
120
- @"latitude": @(mapView.camera.target.latitude),
121
- @"longitude": @(mapView.camera.target.longitude),
122
- },
123
- @"pitch": @(mapView.camera.viewingAngle),
124
- @"heading": @(mapView.camera.bearing),
125
- @"zoom": @(mapView.camera.zoom),
126
- });
127
- }
128
- }];
129
- }
130
-
131
- RCT_EXPORT_METHOD(setCamera:(nonnull NSNumber *)reactTag
132
- camera:(id)json)
133
- {
134
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
135
- id view = viewRegistry[reactTag];
136
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
137
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
138
- } else {
139
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
140
- GMSCameraPosition *camera = [RCTConvert GMSCameraPositionWithDefaults:json existingCamera:[mapView camera]];
141
- [mapView setCamera:camera];
142
- }
143
- }];
144
- }
145
-
146
-
147
- RCT_EXPORT_METHOD(animateCamera:(nonnull NSNumber *)reactTag
148
- withCamera:(id)json
149
- withDuration:(CGFloat)duration)
150
- {
151
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
152
- id view = viewRegistry[reactTag];
153
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
154
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
155
- } else {
156
- [CATransaction begin];
157
- [CATransaction setAnimationDuration:duration/1000];
158
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
159
- GMSCameraPosition *camera = [RCTConvert GMSCameraPositionWithDefaults:json existingCamera:[mapView camera]];
160
- [mapView animateToCameraPosition:camera];
161
- [CATransaction commit];
162
- }
163
- }];
164
- }
165
-
166
- RCT_EXPORT_METHOD(animateToNavigation:(nonnull NSNumber *)reactTag
167
- withRegion:(MKCoordinateRegion)region
168
- withBearing:(CGFloat)bearing
169
- withAngle:(double)angle
170
- withDuration:(CGFloat)duration)
171
- {
172
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
173
- id view = viewRegistry[reactTag];
174
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
175
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
176
- } else {
177
- [CATransaction begin];
178
- [CATransaction setAnimationDuration:duration/1000];
179
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
180
- GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:mapView andMKCoordinateRegion:region];
181
- [mapView animateToCameraPosition:camera];
182
- [mapView animateToViewingAngle:angle];
183
- [mapView animateToBearing:bearing];
184
- [CATransaction commit];
185
- }
186
- }];
187
- }
188
-
189
- RCT_EXPORT_METHOD(animateToRegion:(nonnull NSNumber *)reactTag
190
- withRegion:(MKCoordinateRegion)region
191
- withDuration:(CGFloat)duration)
192
- {
193
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
194
- id view = viewRegistry[reactTag];
195
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
196
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
197
- } else {
198
- // Core Animation must be used to control the animation's duration
199
- // See http://stackoverflow.com/a/15663039/171744
200
- [CATransaction begin];
201
- [CATransaction setAnimationDuration:duration/1000];
202
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
203
- GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:mapView andMKCoordinateRegion:region];
204
- [mapView animateToCameraPosition:camera];
205
- [CATransaction commit];
206
- }
207
- }];
208
- }
209
-
210
- RCT_EXPORT_METHOD(animateToCoordinate:(nonnull NSNumber *)reactTag
211
- withRegion:(CLLocationCoordinate2D)latlng
212
- withDuration:(CGFloat)duration)
213
- {
214
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
215
- id view = viewRegistry[reactTag];
216
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
217
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
218
- } else {
219
- [CATransaction begin];
220
- [CATransaction setAnimationDuration:duration/1000];
221
- [(AIRGoogleMap *)view animateToLocation:latlng];
222
- [CATransaction commit];
223
- }
224
- }];
225
- }
226
-
227
- RCT_EXPORT_METHOD(animateToViewingAngle:(nonnull NSNumber *)reactTag
228
- withAngle:(double)angle
229
- withDuration:(CGFloat)duration)
230
- {
231
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
232
- id view = viewRegistry[reactTag];
233
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
234
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
235
- } else {
236
- [CATransaction begin];
237
- [CATransaction setAnimationDuration:duration/1000];
238
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
239
- [mapView animateToViewingAngle:angle];
240
- [CATransaction commit];
241
- }
242
- }];
243
- }
244
-
245
- RCT_EXPORT_METHOD(animateToBearing:(nonnull NSNumber *)reactTag
246
- withBearing:(CGFloat)bearing
247
- withDuration:(CGFloat)duration)
248
- {
249
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
250
- id view = viewRegistry[reactTag];
251
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
252
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
253
- } else {
254
- [CATransaction begin];
255
- [CATransaction setAnimationDuration:duration/1000];
256
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
257
- [mapView animateToBearing:bearing];
258
- [CATransaction commit];
259
- }
260
- }];
261
- }
262
-
263
- RCT_EXPORT_METHOD(fitToElements:(nonnull NSNumber *)reactTag
264
- edgePadding:(nonnull NSDictionary *)edgePadding
265
- animated:(BOOL)animated)
266
- {
267
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
268
- id view = viewRegistry[reactTag];
269
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
270
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
271
- } else {
272
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
273
-
274
- CLLocationCoordinate2D myLocation = ((AIRGoogleMapMarker *)(mapView.markers.firstObject)).realMarker.position;
275
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:myLocation coordinate:myLocation];
276
-
277
- for (AIRGoogleMapMarker *marker in mapView.markers)
278
- bounds = [bounds includingCoordinate:marker.realMarker.position];
279
-
280
- GMSCameraUpdate* cameraUpdate;
281
-
282
- if ([edgePadding count] != 0) {
283
- // Set Map viewport
284
- CGFloat top = [RCTConvert CGFloat:edgePadding[@"top"]];
285
- CGFloat right = [RCTConvert CGFloat:edgePadding[@"right"]];
286
- CGFloat bottom = [RCTConvert CGFloat:edgePadding[@"bottom"]];
287
- CGFloat left = [RCTConvert CGFloat:edgePadding[@"left"]];
288
-
289
- cameraUpdate = [GMSCameraUpdate fitBounds:bounds withEdgeInsets:UIEdgeInsetsMake(top, left, bottom, right)];
290
- } else {
291
- cameraUpdate = [GMSCameraUpdate fitBounds:bounds withPadding:55.0f];
292
- }
293
- if (animated) {
294
- [mapView animateWithCameraUpdate: cameraUpdate];
295
- } else {
296
- [mapView moveCamera: cameraUpdate];
297
- }
298
- }
299
- }];
300
- }
301
-
302
- RCT_EXPORT_METHOD(fitToSuppliedMarkers:(nonnull NSNumber *)reactTag
303
- markers:(nonnull NSArray *)markers
304
- edgePadding:(nonnull NSDictionary *)edgePadding
305
- animated:(BOOL)animated)
306
- {
307
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
308
- id view = viewRegistry[reactTag];
309
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
310
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
311
- } else {
312
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
313
-
314
- NSPredicate *filterMarkers = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
315
- AIRGoogleMapMarker *marker = (AIRGoogleMapMarker *)evaluatedObject;
316
- return [marker isKindOfClass:[AIRGoogleMapMarker class]] && [markers containsObject:marker.identifier];
317
- }];
318
-
319
- NSArray *filteredMarkers = [mapView.markers filteredArrayUsingPredicate:filterMarkers];
320
-
321
- CLLocationCoordinate2D myLocation = ((AIRGoogleMapMarker *)(filteredMarkers.firstObject)).realMarker.position;
322
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:myLocation coordinate:myLocation];
323
-
324
- for (AIRGoogleMapMarker *marker in filteredMarkers)
325
- bounds = [bounds includingCoordinate:marker.realMarker.position];
326
-
327
- // Set Map viewport
328
- CGFloat top = [RCTConvert CGFloat:edgePadding[@"top"]];
329
- CGFloat right = [RCTConvert CGFloat:edgePadding[@"right"]];
330
- CGFloat bottom = [RCTConvert CGFloat:edgePadding[@"bottom"]];
331
- CGFloat left = [RCTConvert CGFloat:edgePadding[@"left"]];
332
-
333
- GMSCameraUpdate* cameraUpdate = [GMSCameraUpdate fitBounds:bounds withEdgeInsets:UIEdgeInsetsMake(top, left, bottom, right)];
334
- if (animated) {
335
- [mapView animateWithCameraUpdate:cameraUpdate
336
- ];
337
- } else {
338
- [mapView moveCamera: cameraUpdate];
339
- }
340
- }
341
- }];
342
- }
343
-
344
- RCT_EXPORT_METHOD(fitToCoordinates:(nonnull NSNumber *)reactTag
345
- coordinates:(nonnull NSArray<AIRMapCoordinate *> *)coordinates
346
- edgePadding:(nonnull NSDictionary *)edgePadding
347
- animated:(BOOL)animated)
348
- {
349
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
350
- id view = viewRegistry[reactTag];
351
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
352
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
353
- } else {
354
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
355
-
356
- CLLocationCoordinate2D myLocation = coordinates.firstObject.coordinate;
357
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:myLocation coordinate:myLocation];
358
-
359
- for (AIRMapCoordinate *coordinate in coordinates)
360
- bounds = [bounds includingCoordinate:coordinate.coordinate];
361
-
362
- // Set Map viewport
363
- CGFloat top = [RCTConvert CGFloat:edgePadding[@"top"]];
364
- CGFloat right = [RCTConvert CGFloat:edgePadding[@"right"]];
365
- CGFloat bottom = [RCTConvert CGFloat:edgePadding[@"bottom"]];
366
- CGFloat left = [RCTConvert CGFloat:edgePadding[@"left"]];
367
-
368
- GMSCameraUpdate *cameraUpdate = [GMSCameraUpdate fitBounds:bounds withEdgeInsets:UIEdgeInsetsMake(top, left, bottom, right)];
369
-
370
- if (animated) {
371
- [mapView animateWithCameraUpdate: cameraUpdate];
372
- } else {
373
- [mapView moveCamera: cameraUpdate];
374
- }
375
- }
376
- }];
377
- }
378
-
379
- RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
380
- withWidth:(nonnull NSNumber *)width
381
- withHeight:(nonnull NSNumber *)height
382
- withRegion:(MKCoordinateRegion)region
383
- format:(nonnull NSString *)format
384
- quality:(nonnull NSNumber *)quality
385
- result:(nonnull NSString *)result
386
- withCallback:(RCTResponseSenderBlock)callback)
387
- {
388
- NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
389
- NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
390
- NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
391
-
392
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
393
- id view = viewRegistry[reactTag];
394
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
395
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
396
- } else {
397
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
398
-
399
- // TODO: currently we are ignoring width, height, region
400
-
401
- UIGraphicsBeginImageContextWithOptions(mapView.frame.size, YES, 0.0f);
402
- [mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
403
- UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
404
-
405
- NSData *data;
406
- if ([format isEqualToString:@"png"]) {
407
- data = UIImagePNGRepresentation(image);
408
-
409
- }
410
- else if([format isEqualToString:@"jpg"]) {
411
- data = UIImageJPEGRepresentation(image, quality.floatValue);
412
- }
413
-
414
- if ([result isEqualToString:@"file"]) {
415
- [data writeToFile:filePath atomically:YES];
416
- callback(@[[NSNull null], filePath]);
417
- }
418
- else if ([result isEqualToString:@"base64"]) {
419
- callback(@[[NSNull null], [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]]);
420
- }
421
- else if ([result isEqualToString:@"legacy"]) {
422
-
423
- // In the initial (iOS only) implementation of takeSnapshot,
424
- // both the uri and the base64 encoded string were returned.
425
- // Returning both is rarely useful and in fact causes a
426
- // performance penalty when only the file URI is desired.
427
- // In that case the base64 encoded string was always marshalled
428
- // over the JS-bridge (which is quite slow).
429
- // A new more flexible API was created to cover this.
430
- // This code should be removed in a future release when the
431
- // old API is fully deprecated.
432
- [data writeToFile:filePath atomically:YES];
433
- NSDictionary *snapshotData = @{
434
- @"uri": filePath,
435
- @"data": [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]
436
- };
437
- callback(@[[NSNull null], snapshotData]);
438
- }
439
-
440
- }
441
- UIGraphicsEndImageContext();
442
- }];
443
- }
444
-
445
- RCT_EXPORT_METHOD(pointForCoordinate:(nonnull NSNumber *)reactTag
446
- coordinate:(NSDictionary *)coordinate
447
- resolver: (RCTPromiseResolveBlock)resolve
448
- rejecter:(RCTPromiseRejectBlock)reject)
449
- {
450
- CLLocationCoordinate2D coord =
451
- CLLocationCoordinate2DMake(
452
- [coordinate[@"latitude"] doubleValue],
453
- [coordinate[@"longitude"] doubleValue]
454
- );
455
-
456
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
457
- id view = viewRegistry[reactTag];
458
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
459
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
460
- } else {
461
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
462
-
463
- CGPoint touchPoint = [mapView.projection pointForCoordinate:coord];
464
-
465
- resolve(@{
466
- @"x": @(touchPoint.x),
467
- @"y": @(touchPoint.y),
468
- });
469
- }
470
- }];
471
- }
472
-
473
- RCT_EXPORT_METHOD(coordinateForPoint:(nonnull NSNumber *)reactTag
474
- point:(NSDictionary *)point
475
- resolver: (RCTPromiseResolveBlock)resolve
476
- rejecter:(RCTPromiseRejectBlock)reject)
477
- {
478
- CGPoint pt = CGPointMake(
479
- [point[@"x"] doubleValue],
480
- [point[@"y"] doubleValue]
481
- );
482
-
483
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
484
- id view = viewRegistry[reactTag];
485
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
486
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
487
- } else {
488
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
489
-
490
- CLLocationCoordinate2D coordinate = [mapView.projection coordinateForPoint:pt];
491
-
492
- resolve(@{
493
- @"latitude": @(coordinate.latitude),
494
- @"longitude": @(coordinate.longitude),
495
- });
496
- }
497
- }];
498
- }
499
-
500
- RCT_EXPORT_METHOD(getMarkersFrames:(nonnull NSNumber *)reactTag
501
- onlyVisible:(BOOL)onlyVisible
502
- resolver: (RCTPromiseResolveBlock)resolve
503
- rejecter:(RCTPromiseRejectBlock)reject)
504
- {
505
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
506
- id view = viewRegistry[reactTag];
507
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
508
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
509
- } else {
510
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
511
- resolve([mapView getMarkersFramesWithOnlyVisible:onlyVisible]);
512
- }
513
- }];
514
- }
515
-
516
- RCT_EXPORT_METHOD(getMapBoundaries:(nonnull NSNumber *)reactTag
517
- resolver:(RCTPromiseResolveBlock)resolve
518
- rejecter:(RCTPromiseRejectBlock)reject)
519
- {
520
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
521
- id view = viewRegistry[reactTag];
522
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
523
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
524
- } else {
525
- NSArray *boundingBox = [view getMapBoundaries];
526
-
527
- resolve(@{
528
- @"northEast" : @{
529
- @"longitude" : boundingBox[0][0],
530
- @"latitude" : boundingBox[0][1]
531
- },
532
- @"southWest" : @{
533
- @"longitude" : boundingBox[1][0],
534
- @"latitude" : boundingBox[1][1]
535
- }
536
- });
537
- }
538
- }];
539
- }
540
-
541
- RCT_EXPORT_METHOD(setMapBoundaries:(nonnull NSNumber *)reactTag
542
- northEast:(CLLocationCoordinate2D)northEast
543
- southWest:(CLLocationCoordinate2D)southWest)
544
- {
545
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
546
- id view = viewRegistry[reactTag];
547
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
548
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
549
- } else {
550
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
551
-
552
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast coordinate:southWest];
553
-
554
- mapView.cameraTargetBounds = bounds;
555
- }
556
- }];
557
- }
558
-
559
- RCT_EXPORT_METHOD(setIndoorActiveLevelIndex:(nonnull NSNumber *)reactTag
560
- levelIndex:(NSInteger) levelIndex)
561
- {
562
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
563
- id view = viewRegistry[reactTag];
564
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
565
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
566
- } else {
567
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
568
- if (!mapView.indoorDisplay) {
569
- return;
570
- }
571
- if ( levelIndex < [mapView.indoorDisplay.activeBuilding.levels count]) {
572
- mapView.indoorDisplay.activeLevel = mapView.indoorDisplay.activeBuilding.levels[levelIndex];
573
- }
574
- }
575
- }];
576
- }
577
-
578
- + (BOOL)requiresMainQueueSetup {
579
- return YES;
580
- }
581
-
582
- - (NSDictionary *)constantsToExport {
583
- return @{ @"legalNotice": [GMSServices openSourceLicenseInfo] };
584
- }
585
-
586
- - (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture{
587
- self.isGesture = gesture;
588
- }
589
-
590
- - (void)mapViewDidStartTileRendering:(GMSMapView *)mapView {
591
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
592
- [googleMapView didPrepareMap];
593
- }
594
-
595
- - (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView {
596
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
597
- [googleMapView mapViewDidFinishTileRendering];
598
- }
599
-
600
- - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
601
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
602
- return [googleMapView didTapMarker:marker];
603
- }
604
-
605
- - (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSPolygon *)polygon {
606
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
607
- [googleMapView didTapPolygon:polygon];
608
- }
609
-
610
- - (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate {
611
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
612
- [googleMapView didTapAtCoordinate:coordinate];
613
- }
614
-
615
- - (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate {
616
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
617
- [googleMapView didLongPressAtCoordinate:coordinate];
618
- }
619
-
620
- - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
621
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
622
- [googleMapView didChangeCameraPosition:position isGesture:self.isGesture];
623
- }
624
-
625
- - (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position {
626
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
627
- [googleMapView idleAtCameraPosition:position isGesture:self.isGesture];
628
- }
629
-
630
- - (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
631
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
632
- return [aMarker.fakeMarker markerInfoWindow];}
633
-
634
- - (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker {
635
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
636
- return [aMarker.fakeMarker markerInfoContents];
637
- }
638
-
639
- - (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker {
640
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
641
- [aMarker.fakeMarker didTapInfoWindowOfMarker:aMarker];
642
- }
643
-
644
- - (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker {
645
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
646
- [aMarker.fakeMarker didBeginDraggingMarker:aMarker];
647
- }
648
-
649
- - (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker {
650
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
651
- [aMarker.fakeMarker didEndDraggingMarker:aMarker];
652
- }
653
-
654
- - (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker {
655
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
656
- [aMarker.fakeMarker didDragMarker:aMarker];
657
- }
658
-
659
- - (void)mapView:(GMSMapView *)mapView
660
- didTapPOIWithPlaceID:(NSString *)placeID
661
- name:(NSString *)name
662
- location:(CLLocationCoordinate2D)location {
663
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
664
- [googleMapView didTapPOIWithPlaceID:placeID name:name location:location];
665
- }
666
-
667
- #pragma mark Gesture Recognizer Handlers
668
-
669
- - (void)handleMapDrag:(UIPanGestureRecognizer*)recognizer {
670
- AIRGoogleMap *map = (AIRGoogleMap *)recognizer.view;
671
- if (!map.onPanDrag) return;
672
-
673
- CGPoint touchPoint = [recognizer locationInView:map];
674
- CLLocationCoordinate2D coord = [map.projection coordinateForPoint:touchPoint];
675
- map.onPanDrag(@{
676
- @"coordinate": @{
677
- @"latitude": @(coord.latitude),
678
- @"longitude": @(coord.longitude),
679
- },
680
- @"position": @{
681
- @"x": @(touchPoint.x),
682
- @"y": @(touchPoint.y),
683
- },
684
- });
685
-
686
- }
687
-
688
- @end
689
-
690
- #endif
package/ios/User.xcconfig DELETED
File without changes