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
@@ -6,7 +6,5 @@
6
6
  #import "AIRMapCoordinate.h"
7
7
 
8
8
 
9
- @implementation AIRMapCoordinate {
10
-
11
- }
12
- @end
9
+ @implementation AIRMapCoordinate
10
+ @end
@@ -28,8 +28,6 @@
28
28
  #import "AIRMapSnapshot.h"
29
29
  #import "RCTConvert+AirMap.h"
30
30
  #import "AIRMapOverlay.h"
31
- #import "AIRWeakTimerReference.h"
32
- #import "AIRWeakMapReference.h"
33
31
  #import <MapKit/MapKit.h>
34
32
 
35
33
  static NSString *const RCTMapViewKey = @"MapView";
@@ -54,13 +52,13 @@ RCT_EXPORT_MODULE()
54
52
 
55
53
  map.isAccessibilityElement = NO;
56
54
  map.accessibilityElementsHidden = NO;
57
-
55
+
58
56
  // MKMapView doesn't report tap events, so we attach gesture recognizers to it
59
57
  UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapTap:)];
60
58
  UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDoubleTap:)];
61
59
  [doubleTap setNumberOfTapsRequired:2];
62
60
  [tap requireGestureRecognizerToFail:doubleTap];
63
-
61
+
64
62
  UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapLongPress:)];
65
63
  UIPanGestureRecognizer *drag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
66
64
  [drag setMinimumNumberOfTouches:1];
@@ -68,13 +66,13 @@ RCT_EXPORT_MODULE()
68
66
  tap.cancelsTouchesInView = NO;
69
67
  doubleTap.cancelsTouchesInView = NO;
70
68
  longPress.cancelsTouchesInView = NO;
71
-
69
+
72
70
  doubleTap.delegate = self;
73
-
71
+
74
72
  // disable drag by default
75
73
  drag.enabled = NO;
76
74
  drag.delegate = self;
77
-
75
+
78
76
  [map addGestureRecognizer:tap];
79
77
  [map addGestureRecognizer:doubleTap];
80
78
  [map addGestureRecognizer:longPress];
@@ -112,12 +110,14 @@ RCT_EXPORT_VIEW_PROPERTY(compassOffset, CGPoint)
112
110
  RCT_EXPORT_VIEW_PROPERTY(legalLabelInsets, UIEdgeInsets)
113
111
  RCT_EXPORT_VIEW_PROPERTY(mapPadding, UIEdgeInsets)
114
112
  RCT_EXPORT_VIEW_PROPERTY(mapType, MKMapType)
115
- RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTBubblingEventBlock)
116
- RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
117
- RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTBubblingEventBlock)
113
+ RCT_EXPORT_VIEW_PROPERTY(cameraZoomRange, NSDictionary)
114
+ RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTDirectEventBlock)
115
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
116
+ RCT_EXPORT_VIEW_PROPERTY(onRegionChangeStart, RCTDirectEventBlock)
117
+ RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTDirectEventBlock)
118
118
  RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
119
119
  RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
120
- RCT_EXPORT_VIEW_PROPERTY(onDoublePress, RCTBubblingEventBlock)
120
+ RCT_EXPORT_VIEW_PROPERTY(onDoublePress, RCTDirectEventBlock)
121
121
  RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
122
122
  RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
123
123
  RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
@@ -125,7 +125,7 @@ RCT_EXPORT_VIEW_PROPERTY(onMarkerDragStart, RCTDirectEventBlock)
125
125
  RCT_EXPORT_VIEW_PROPERTY(onMarkerDrag, RCTDirectEventBlock)
126
126
  RCT_EXPORT_VIEW_PROPERTY(onMarkerDragEnd, RCTDirectEventBlock)
127
127
  RCT_EXPORT_VIEW_PROPERTY(onCalloutPress, RCTDirectEventBlock)
128
- RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTBubblingEventBlock)
128
+ RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTDirectEventBlock)
129
129
  RCT_CUSTOM_VIEW_PROPERTY(initialRegion, MKCoordinateRegion, AIRMap)
130
130
  {
131
131
  if (json == nil) return;
@@ -139,7 +139,7 @@ RCT_CUSTOM_VIEW_PROPERTY(initialRegion, MKCoordinateRegion, AIRMap)
139
139
  RCT_CUSTOM_VIEW_PROPERTY(initialCamera, MKMapCamera, AIRMap)
140
140
  {
141
141
  if (json == nil) return;
142
-
142
+
143
143
  // don't emit region change events when we are setting the initialCamera
144
144
  BOOL originalIgnore = view.ignoreRegionChanges;
145
145
  view.ignoreRegionChanges = YES;
@@ -166,7 +166,7 @@ RCT_CUSTOM_VIEW_PROPERTY(region, MKCoordinateRegion, AIRMap)
166
166
  RCT_CUSTOM_VIEW_PROPERTY(camera, MKMapCamera*, AIRMap)
167
167
  {
168
168
  if (json == nil) return;
169
-
169
+
170
170
  // don't emit region change events when we are setting the camera
171
171
  BOOL originalIgnore = view.ignoreRegionChanges;
172
172
  view.ignoreRegionChanges = YES;
@@ -186,18 +186,7 @@ RCT_EXPORT_METHOD(getMapBoundaries:(nonnull NSNumber *)reactTag
186
186
  if (![view isKindOfClass:[AIRMap class]]) {
187
187
  RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
188
188
  } else {
189
- NSArray *boundingBox = [view getMapBoundaries];
190
-
191
- resolve(@{
192
- @"northEast" : @{
193
- @"longitude" : boundingBox[0][0],
194
- @"latitude" : boundingBox[0][1]
195
- },
196
- @"southWest" : @{
197
- @"longitude" : boundingBox[1][0],
198
- @"latitude" : boundingBox[1][1]
199
- }
200
- });
189
+ resolve([view getMapBoundaries]);
201
190
  }
202
191
  }];
203
192
  }
@@ -278,31 +267,6 @@ RCT_EXPORT_METHOD(animateCamera:(nonnull NSNumber *)reactTag
278
267
  }];
279
268
  }
280
269
 
281
-
282
- RCT_EXPORT_METHOD(animateToNavigation:(nonnull NSNumber *)reactTag
283
- withRegion:(MKCoordinateRegion)region
284
- withBearing:(CGFloat)bearing
285
- withAngle:(double)angle
286
- withDuration:(CGFloat)duration)
287
- {
288
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
289
- id view = viewRegistry[reactTag];
290
- if (![view isKindOfClass:[AIRMap class]]) {
291
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
292
- } else {
293
- AIRMap *mapView = (AIRMap *)view;
294
- MKMapCamera *mapCamera = [[mapView camera] copy];
295
- [mapCamera setPitch:angle];
296
- [mapCamera setHeading:bearing];
297
-
298
- [AIRMap animateWithDuration:duration/1000 animations:^{
299
- [(AIRMap *)view setRegion:region animated:YES];
300
- [mapView setCamera:mapCamera animated:YES];
301
- }];
302
- }
303
- }];
304
- }
305
-
306
270
  RCT_EXPORT_METHOD(animateToRegion:(nonnull NSNumber *)reactTag
307
271
  withRegion:(MKCoordinateRegion)region
308
272
  withDuration:(CGFloat)duration)
@@ -319,68 +283,6 @@ RCT_EXPORT_METHOD(animateToRegion:(nonnull NSNumber *)reactTag
319
283
  }];
320
284
  }
321
285
 
322
- RCT_EXPORT_METHOD(animateToCoordinate:(nonnull NSNumber *)reactTag
323
- withRegion:(CLLocationCoordinate2D)latlng
324
- withDuration:(CGFloat)duration)
325
- {
326
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
327
- id view = viewRegistry[reactTag];
328
- if (![view isKindOfClass:[AIRMap class]]) {
329
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
330
- } else {
331
- AIRMap *mapView = (AIRMap *)view;
332
- MKCoordinateRegion region;
333
- region.span = mapView.region.span;
334
- region.center = latlng;
335
- [AIRMap animateWithDuration:duration/1000 animations:^{
336
- [mapView setRegion:region animated:YES];
337
- }];
338
- }
339
- }];
340
- }
341
-
342
- RCT_EXPORT_METHOD(animateToViewingAngle:(nonnull NSNumber *)reactTag
343
- withAngle:(double)angle
344
- withDuration:(CGFloat)duration)
345
- {
346
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
347
- id view = viewRegistry[reactTag];
348
- if (![view isKindOfClass:[AIRMap class]]) {
349
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
350
- } else {
351
- AIRMap *mapView = (AIRMap *)view;
352
-
353
- MKMapCamera *mapCamera = [[mapView camera] copy];
354
- [mapCamera setPitch:angle];
355
-
356
- [AIRMap animateWithDuration:duration/1000 animations:^{
357
- [mapView setCamera:mapCamera animated:YES];
358
- }];
359
- }
360
- }];
361
- }
362
-
363
- RCT_EXPORT_METHOD(animateToBearing:(nonnull NSNumber *)reactTag
364
- withBearing:(CGFloat)bearing
365
- withDuration:(CGFloat)duration)
366
- {
367
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
368
- id view = viewRegistry[reactTag];
369
- if (![view isKindOfClass:[AIRMap class]]) {
370
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
371
- } else {
372
- AIRMap *mapView = (AIRMap *)view;
373
-
374
- MKMapCamera *mapCamera = [[mapView camera] copy];
375
- [mapCamera setHeading:bearing];
376
-
377
- [AIRMap animateWithDuration:duration/1000 animations:^{
378
- [mapView setCamera:mapCamera animated:YES];
379
- }];
380
- }
381
- }];
382
- }
383
-
384
286
  RCT_EXPORT_METHOD(fitToElements:(nonnull NSNumber *)reactTag
385
287
  edgePadding:(nonnull NSDictionary *)edgePadding
386
288
  animated:(BOOL)animated)
@@ -437,23 +339,8 @@ RCT_EXPORT_METHOD(fitToCoordinates:(nonnull NSNumber *)reactTag
437
339
  RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
438
340
  } else {
439
341
  AIRMap *mapView = (AIRMap *)view;
440
-
441
- // Create Polyline with coordinates
442
- CLLocationCoordinate2D coords[coordinates.count];
443
- for(int i = 0; i < coordinates.count; i++)
444
- {
445
- coords[i] = coordinates[i].coordinate;
446
- }
447
- MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coords count:coordinates.count];
448
-
449
- // Set Map viewport
450
- CGFloat top = [RCTConvert CGFloat:edgePadding[@"top"]];
451
- CGFloat right = [RCTConvert CGFloat:edgePadding[@"right"]];
452
- CGFloat bottom = [RCTConvert CGFloat:edgePadding[@"bottom"]];
453
- CGFloat left = [RCTConvert CGFloat:edgePadding[@"left"]];
454
-
455
- [mapView setVisibleMapRect:[polyline boundingMapRect] edgePadding:UIEdgeInsetsMake(top, left, bottom, right) animated:animated];
456
-
342
+ UIEdgeInsets edgeInsets = [RCTConvert UIEdgeInsets:edgePadding];
343
+ [mapView fitToCoordinates: coordinates edgePadding:edgeInsets animated:animated];
457
344
  }
458
345
  }];
459
346
  }
@@ -638,16 +525,16 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
638
525
  [overlay drawToSnapshot:snapshot context:UIGraphicsGetCurrentContext()];
639
526
  }
640
527
  }
641
-
528
+
642
529
  for (id <MKAnnotation> annotation in mapView.annotations) {
643
530
  CGPoint point = [snapshot pointForCoordinate:annotation.coordinate];
644
-
531
+
645
532
  MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
646
-
533
+
647
534
  if (anView){
648
535
  pin = anView;
649
536
  }
650
-
537
+
651
538
  if (CGRectContainsPoint(rect, point)) {
652
539
  point.x = point.x + pin.centerOffset.x - (pin.bounds.size.width / 2.0f);
653
540
  point.y = point.y + pin.centerOffset.y - (pin.bounds.size.height / 2.0f);
@@ -677,24 +564,6 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
677
564
  else if ([result isEqualToString:@"base64"]) {
678
565
  callback(@[[NSNull null], [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]]);
679
566
  }
680
- else if ([result isEqualToString:@"legacy"]) {
681
-
682
- // In the initial (iOS only) implementation of takeSnapshot,
683
- // both the uri and the base64 encoded string were returned.
684
- // Returning both is rarely useful and in fact causes a
685
- // performance penalty when only the file URI is desired.
686
- // In that case the base64 encoded string was always marshalled
687
- // over the JS-bridge (which is quite slow).
688
- // A new more flexible API was created to cover this.
689
- // This code should be removed in a future release when the
690
- // old API is fully deprecated.
691
- [data writeToFile:filePath atomically:YES];
692
- NSDictionary *snapshotData = @{
693
- @"uri": filePath,
694
- @"data": [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]
695
- };
696
- callback(@[[NSNull null], snapshotData]);
697
- }
698
567
  }
699
568
  UIGraphicsEndImageContext();
700
569
  }];
@@ -778,12 +647,11 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
778
647
  }
779
648
 
780
649
  if (nearestDistance <= maxMeters) {
781
- AIRMapCoordinate *firstCoord = nearestPolyline.coordinates.firstObject;
782
650
  id event = @{
783
651
  @"action": @"polyline-press",
784
652
  @"coordinate": @{
785
- @"latitude": @(firstCoord.coordinate.latitude),
786
- @"longitude": @(firstCoord.coordinate.longitude)
653
+ @"latitude": @(tapCoordinate.latitude),
654
+ @"longitude": @(tapCoordinate.longitude)
787
655
  }
788
656
  };
789
657
  nearestPolyline.onPress(event);
@@ -818,6 +686,7 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
818
686
  @"x": @(touchPoint.x),
819
687
  @"y": @(touchPoint.y),
820
688
  },
689
+ @"numberOfTouches": @(recognizer.numberOfTouches)
821
690
  });
822
691
 
823
692
  }
@@ -825,7 +694,7 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
825
694
  - (void)handleMapDoubleTap:(UIPanGestureRecognizer*)recognizer {
826
695
  AIRMap *map = (AIRMap *)recognizer.view;
827
696
  if (!map.onDoublePress) return;
828
-
697
+
829
698
  CGPoint touchPoint = [recognizer locationInView:map];
830
699
  CLLocationCoordinate2D coord = [map convertPoint:touchPoint toCoordinateFromView:map];
831
700
  map.onDoublePress(@{
@@ -838,7 +707,7 @@ RCT_EXPORT_METHOD(getAddressFromCoordinates:(nonnull NSNumber *)reactTag
838
707
  @"y": @(touchPoint.y),
839
708
  },
840
709
  });
841
-
710
+
842
711
  }
843
712
 
844
713
 
@@ -1023,67 +892,47 @@ static int kDragCenterContext;
1023
892
  @"latitude": @(location.coordinate.latitude),
1024
893
  @"longitude": @(location.coordinate.longitude),
1025
894
  @"altitude": @(location.location.altitude),
1026
- @"timestamp": @(location.location.timestamp.timeIntervalSinceReferenceDate * 1000),
895
+ @"timestamp": @(location.location.timestamp.timeIntervalSince1970 * 1000),
1027
896
  @"accuracy": @(location.location.horizontalAccuracy),
1028
897
  @"altitudeAccuracy": @(location.location.verticalAccuracy),
1029
898
  @"speed": @(location.location.speed),
1030
899
  @"heading": @(location.location.course),
1031
900
  }
1032
901
  };
1033
-
902
+
1034
903
  if (mapView.onUserLocationChange) {
1035
904
  mapView.onUserLocationChange(event);
1036
905
  }
1037
-
1038
- if (mapView.followUserLocation) {
1039
- MKCoordinateRegion region;
1040
- region.span.latitudeDelta = AIRMapDefaultSpan;
1041
- region.span.longitudeDelta = AIRMapDefaultSpan;
1042
- region.center = location.coordinate;
1043
- [mapView setRegion:region animated:YES];
1044
-
1045
- // Move to user location only for the first time it loads up.
1046
- // mapView.followUserLocation = NO;
906
+
907
+ if (mapView.followsUserLocation) {
908
+ [mapView setCenterCoordinate:location.coordinate animated:YES];
1047
909
  }
1048
-
910
+
1049
911
  }
1050
912
 
1051
- - (void)mapView:(AIRMap *)mapView regionWillChangeAnimated:(__unused BOOL)animated
913
+ - (void)mapView:(AIRMap *)mapView regionWillChangeAnimated:(BOOL)animated
1052
914
  {
1053
- // Don't send region did change events until map has
1054
- // started rendering, as these won't represent the final location
1055
- if(mapView.hasStartedRendering){
1056
- [self _regionChanged:mapView];
1057
- }
1058
-
1059
- AIRWeakTimerReference *weakTarget = [[AIRWeakTimerReference alloc] initWithTarget:self andSelector:@selector(_onTick:)];
1060
-
1061
- mapView.regionChangeObserveTimer = [NSTimer timerWithTimeInterval:AIRMapRegionChangeObserveInterval
1062
- target:weakTarget
1063
- selector:@selector(timerDidFire:)
1064
- userInfo:@{ RCTMapViewKey: [[AIRWeakMapReference alloc] initWithMapView: mapView] }
1065
- repeats:YES];
915
+ if (mapView.onRegionChangeStart) mapView.onRegionChangeStart(@{});
916
+ }
1066
917
 
1067
- [[NSRunLoop mainRunLoop] addTimer:mapView.regionChangeObserveTimer forMode:NSRunLoopCommonModes];
918
+ - (void)mapViewDidChangeVisibleRegion:(AIRMap *)mapView
919
+ {
920
+ [self _regionChanged:mapView];
1068
921
  }
1069
922
 
1070
923
  - (void)mapView:(AIRMap *)mapView regionDidChangeAnimated:(__unused BOOL)animated
1071
924
  {
1072
- CGFloat zoomLevel = [self zoomLevel:mapView];
1073
- [mapView.regionChangeObserveTimer invalidate];
1074
- mapView.regionChangeObserveTimer = nil;
1075
-
1076
925
  // Don't send region did change events until map has
1077
926
  // started rendering, as these won't represent the final location
927
+ if (animated && mapView.ignoreRegionChanges){
928
+ mapView.ignoreRegionChanges = false;
929
+ }
1078
930
  if(mapView.hasStartedRendering){
1079
931
  [self _regionChanged:mapView];
1080
932
  }
1081
933
 
1082
- if (zoomLevel < mapView.minZoomLevel) {
1083
- [self setCenterCoordinate:[mapView centerCoordinate] zoomLevel:mapView.minZoomLevel animated:TRUE mapView:mapView];
1084
- }
1085
- else if (zoomLevel > mapView.maxZoomLevel) {
1086
- [self setCenterCoordinate:[mapView centerCoordinate] zoomLevel:mapView.maxZoomLevel animated:TRUE mapView:mapView];
934
+ if (mapView.legacyZoomConstraintsEnabled == YES) {
935
+ [self applyLegacyZoomConstrains:mapView];
1087
936
  }
1088
937
 
1089
938
  // Don't send region did change events until map has
@@ -1094,6 +943,8 @@ static int kDragCenterContext;
1094
943
 
1095
944
  mapView.pendingCenter = mapView.region.center;
1096
945
  mapView.pendingSpan = mapView.region.span;
946
+ // reset original state (checkout setCamera / region animated)
947
+ mapView.ignoreRegionChanges = NO;
1097
948
  }
1098
949
 
1099
950
  - (void)mapViewWillStartRenderingMap:(AIRMap *)mapView
@@ -1103,22 +954,16 @@ static int kDragCenterContext;
1103
954
  mapView.hasStartedRendering = YES;
1104
955
  }
1105
956
  [mapView beginLoading];
1106
- [self _emitRegionChangeEvent:mapView continuous:NO];
1107
957
  }
1108
958
 
1109
959
  - (void)mapViewDidFinishRenderingMap:(AIRMap *)mapView fullyRendered:(BOOL)fullyRendered
1110
960
  {
1111
961
  [mapView finishLoading];
962
+ mapView.ignoreRegionChanges = NO;
1112
963
  }
1113
964
 
1114
965
  #pragma mark Private
1115
966
 
1116
- - (void)_onTick:(NSTimer *)timer
1117
- {
1118
- AIRWeakMapReference *weakRef = timer.userInfo[RCTMapViewKey];
1119
- [self _regionChanged:weakRef.mapView];
1120
- }
1121
-
1122
967
  - (void)_regionChanged:(AIRMap *)mapView
1123
968
  {
1124
969
  BOOL needZoom = NO;
@@ -1150,14 +995,14 @@ static int kDragCenterContext;
1150
995
 
1151
996
  - (void)_emitRegionChangeEvent:(AIRMap *)mapView continuous:(BOOL)continuous
1152
997
  {
1153
- if (!mapView.ignoreRegionChanges && mapView.onChange) {
998
+ if (!mapView.ignoreRegionChanges && mapView.onRegionChange) {
1154
999
  MKCoordinateRegion region = mapView.region;
1155
1000
  if (!CLLocationCoordinate2DIsValid(region.center)) {
1156
1001
  return;
1157
1002
  }
1158
1003
 
1159
1004
  #define FLUSH_NAN(value) (isnan(value) ? 0 : value)
1160
- mapView.onChange(@{
1005
+ mapView.onRegionChange(@{
1161
1006
  @"continuous": @(continuous),
1162
1007
  @"region": @{
1163
1008
  @"latitude": @(FLUSH_NAN(region.center.latitude)),
@@ -1302,6 +1147,22 @@ static int kDragCenterContext;
1302
1147
  [mapView setRegion:region animated:animated];
1303
1148
  }
1304
1149
 
1150
+ -(void)applyLegacyZoomConstrains:(AIRMap *)mapView {
1151
+ // flyover maps don't use mercator projection so we can't calculate their zoom level.
1152
+ if (mapView.mapType == MKMapTypeHybridFlyover || mapView.mapType == MKMapTypeSatelliteFlyover) {
1153
+ return;
1154
+ }
1155
+
1156
+ CGFloat zoomLevel = [mapView getZoomLevel];
1157
+
1158
+ if (zoomLevel < mapView.minZoom) {
1159
+ [self setCenterCoordinate:[mapView centerCoordinate] zoomLevel:mapView.minZoom animated:TRUE mapView:mapView];
1160
+ }
1161
+ else if (zoomLevel > mapView.maxZoom) {
1162
+ [self setCenterCoordinate:[mapView centerCoordinate] zoomLevel:mapView.maxZoom animated:TRUE mapView:mapView];
1163
+ }
1164
+ }
1165
+
1305
1166
  //KMapView cannot display tiles that cross the pole (as these would involve wrapping the map from top to bottom, something that a Mercator projection just cannot do).
1306
1167
  -(MKCoordinateRegion)coordinateRegionWithMapView:(AIRMap *)mapView
1307
1168
  centerCoordinate:(CLLocationCoordinate2D)centerCoordinate
@@ -1360,21 +1221,6 @@ static int kDragCenterContext;
1360
1221
  return region;
1361
1222
  }
1362
1223
 
1363
- - (double) zoomLevel:(AIRMap *)mapView {
1364
- MKCoordinateRegion region = mapView.region;
1365
-
1366
- double centerPixelX = [AIRMapManager longitudeToPixelSpaceX: region.center.longitude];
1367
- double topLeftPixelX = [AIRMapManager longitudeToPixelSpaceX: region.center.longitude - region.span.longitudeDelta / 2];
1368
-
1369
- double scaledMapWidth = (centerPixelX - topLeftPixelX) * 2;
1370
- CGSize mapSizeInPixels = mapView.bounds.size;
1371
- double zoomScale = scaledMapWidth / mapSizeInPixels.width;
1372
- double zoomExponent = log(zoomScale) / log(2);
1373
- double zoomLevel = AIRMapMaxZoomLevel - zoomExponent;
1374
-
1375
- return zoomLevel;
1376
- }
1377
-
1378
1224
  #pragma mark MKMapViewDelegate - Tracking the User Location
1379
1225
 
1380
1226
  - (void)mapView:(AIRMap *)mapView didFailToLocateUserWithError:(NSError *)error {
@@ -35,6 +35,9 @@
35
35
  @property (nonatomic, assign) NSInteger zIndex;
36
36
  @property (nonatomic, assign) double opacity;
37
37
  @property (nonatomic, assign) BOOL isPreselected;
38
+ @property (nonatomic, assign) MKFeatureVisibility titleVisibility;
39
+ @property (nonatomic, assign) MKFeatureVisibility subtitleVisibility;
40
+ @property (nonatomic, assign) BOOL useLegacyPinView;
38
41
 
39
42
  @property (nonatomic, copy) RCTBubblingEventBlock onPress;
40
43
  @property (nonatomic, copy) RCTDirectEventBlock onSelect;
@@ -51,6 +54,8 @@
51
54
  - (void)showCalloutView;
52
55
  - (void)hideCalloutView;
53
56
  - (void)addTapGestureRecognizer;
57
+ - (void)setUseLegacyPinView:(BOOL)value;
58
+ - (void)animateToCoordinate:(CLLocationCoordinate2D)newCoordinate duration:(NSTimeInterval)duration;
54
59
 
55
60
  @end
56
61