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.
- package/android/build.gradle +89 -33
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradlew +251 -0
- package/android/gradlew.bat +94 -0
- package/android/src/main/AndroidManifest.xml +1 -5
- package/android/src/main/RCTAppDependencyProvider.h +25 -0
- package/android/src/main/RCTAppDependencyProvider.mm +55 -0
- package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
- package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
- package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
- package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
- package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
- package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
- package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +623 -0
- package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
- package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +284 -0
- package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +101 -0
- package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
- package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
- package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
- package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FileUtil.java +3 -6
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FusedLocationSource.java +5 -2
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReadable.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReader.java +5 -7
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageUtil.java +1 -2
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/LatLngBoundsUtils.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +98 -0
- package/android/src/main/java/com/rnmaps/maps/MapCallout.java +41 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCalloutManager.java → rnmaps/maps/MapCalloutManager.java} +6 -6
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircle.java → rnmaps/maps/MapCircle.java} +34 -8
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircleManager.java → rnmaps/maps/MapCircleManager.java} +15 -20
- package/android/src/main/java/com/rnmaps/maps/MapFeature.java +17 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolyline.java → rnmaps/maps/MapGradientPolyline.java} +9 -12
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolylineManager.java → rnmaps/maps/MapGradientPolylineManager.java} +13 -18
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmap.java → rnmaps/maps/MapHeatmap.java} +8 -9
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmapManager.java → rnmaps/maps/MapHeatmapManager.java} +8 -8
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapLocalTile.java → rnmaps/maps/MapLocalTile.java} +19 -16
- package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +54 -0
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +504 -0
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +706 -0
- package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +368 -0
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +283 -0
- package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +262 -0
- package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +97 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygon.java → rnmaps/maps/MapPolygon.java} +73 -9
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygonManager.java → rnmaps/maps/MapPolygonManager.java} +22 -22
- package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +230 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolylineManager.java → rnmaps/maps/MapPolylineManager.java} +18 -38
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileProvider.java → rnmaps/maps/MapTileProvider.java} +55 -76
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileWorker.java → rnmaps/maps/MapTileWorker.java} +7 -14
- package/android/src/main/java/com/rnmaps/maps/MapUIBlock.java +64 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapUrlTile.java → rnmaps/maps/MapUrlTile.java} +29 -29
- package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +87 -0
- package/android/src/main/java/com/rnmaps/maps/MapView.java +1844 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapWMSTile.java → rnmaps/maps/MapWMSTile.java} +11 -17
- package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +81 -0
- package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +45 -0
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/RegionChangeEvent.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/SizeReportingShadowNode.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewAttacherGroup.java +2 -7
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewChangesTracker.java +12 -11
- package/android/src/main/jni/CMakeLists.txt +36 -0
- package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
- package/android/src/main/jni/RNMapsSpecs.h +31 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
- package/app.plugin.js +1 -0
- package/ios/AirGoogleMaps/AIRGMSMarker.h +2 -0
- package/ios/AirGoogleMaps/AIRGoogleMap.h +22 -12
- package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +407 -130
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +2 -3
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +42 -3
- package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
- package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
- package/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapManager.h +11 -0
- package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +4 -0
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +369 -237
- package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +3 -2
- package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +7 -6
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +62 -5
- package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +4 -3
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +9 -9
- package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
- package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +29 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +678 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +40 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +226 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
- package/ios/AirGoogleMaps/Resources/GoogleMapsPrivacy.bundle/PrivacyInfo.xcprivacy +110 -0
- package/ios/AirMaps/AIRMap.h +19 -14
- package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +333 -120
- package/ios/AirMaps/AIRMapCircle.m +1 -53
- package/ios/AirMaps/AIRMapCoordinate.m +2 -4
- package/ios/AirMaps/AIRMapManager.m +64 -218
- package/ios/AirMaps/AIRMapMarker.h +5 -0
- package/ios/AirMaps/AIRMapMarker.m +180 -69
- package/ios/AirMaps/AIRMapMarkerManager.m +3 -0
- package/ios/AirMaps/AIRMapOverlay.m +2 -2
- package/ios/AirMaps/AIRMapPolygon.m +0 -52
- package/ios/AirMaps/AIRMapPolyline.m +3 -2
- package/ios/AirMaps/AIRMapWMSTile.m +8 -8
- package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +52 -0
- package/ios/AirMaps/RCTComponentData+Maps.h +13 -0
- package/ios/AirMaps/RCTComponentData+Maps.m +55 -0
- package/ios/AirMaps/RCTConvert+AirMap.h +6 -1
- package/ios/AirMaps/RCTConvert+AirMap.m +18 -0
- package/ios/AirMaps/RNMapsAirModule.h +15 -0
- package/ios/AirMaps/RNMapsAirModule.mm +164 -0
- package/ios/AirMaps/RNMapsDefines.h +1 -0
- package/ios/AirMaps/RNMapsMapView.h +27 -0
- package/ios/AirMaps/RNMapsMapView.mm +577 -0
- package/ios/AirMaps/RNMapsMapViewManager.mm +42 -0
- package/ios/AirMaps/RNMapsMarkerView.h +24 -0
- package/ios/AirMaps/RNMapsMarkerView.mm +439 -0
- package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
- package/ios/AirMaps/UIView+AirMap.h +11 -0
- package/ios/AirMaps/UIView+AirMap.m +20 -0
- package/ios/AirMaps/module.modulemap +6 -0
- package/ios/AirMaps.xcodeproj/project.pbxproj +44 -4
- package/ios/PrivacyInfo.xcprivacy +37 -0
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/ios/generated/RNMapsAirModuleDelegate.h +24 -0
- package/ios/generated/RNMapsHostVewDelegate.h +17 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
- package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
- package/ios/generated/RNMapsSpecs/Props.h +1224 -0
- package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
- package/ios/generated/RNMapsSpecs/States.cpp +16 -0
- package/ios/generated/RNMapsSpecs/States.h +113 -0
- package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
- package/ios/generated/RNMapsSpecsJSI.h +268 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/ios/generated/module.modulemap +15 -0
- package/package.json +57 -34
- package/plugin/build/android.js +58 -0
- package/plugin/build/index.js +10 -0
- package/plugin/build/ios.js +176 -0
- package/plugin/build/types.js +2 -0
- package/react-native-maps.podspec +114 -11
- package/react-native.config.js +15 -0
- package/src/{AnimatedRegion.js → AnimatedRegion.ts} +26 -21
- package/src/Geojson.tsx +541 -0
- package/src/MapCallout.tsx +77 -0
- package/src/MapCalloutSubview.tsx +64 -0
- package/src/MapCircle.tsx +162 -0
- package/src/MapHeatmap.tsx +125 -0
- package/src/MapLocalTile.tsx +60 -0
- package/src/MapMarker.tsx +531 -0
- package/src/MapMarkerNativeComponent.ts +51 -0
- package/src/MapOverlay.tsx +178 -0
- package/src/MapPolygon.tsx +188 -0
- package/src/MapPolygon.types.ts +25 -0
- package/src/MapPolyline.tsx +215 -0
- package/src/MapUrlTile.tsx +169 -0
- package/src/MapView.tsx +1235 -0
- package/src/MapView.types.ts +212 -0
- package/src/MapView.web.ts +2 -0
- package/src/MapViewNativeComponent.ts +86 -0
- package/src/MapWMSTile.tsx +148 -0
- package/src/ProviderConstants.ts +2 -0
- package/src/createFabricMap.tsx +253 -0
- package/src/decorateMapComponent.ts +230 -0
- package/src/fixImageProp.ts +17 -0
- package/src/index.ts +52 -0
- package/src/sharedTypes.ts +101 -0
- package/src/sharedTypesInternal.ts +1 -0
- package/src/specs/NativeAirMapsModule.ts +36 -0
- package/src/specs/NativeComponentCallout.ts +63 -0
- package/src/specs/NativeComponentCircle.ts +93 -0
- package/src/specs/NativeComponentGoogleMapView.ts +922 -0
- package/src/specs/NativeComponentGooglePolygon.ts +94 -0
- package/src/specs/NativeComponentMapView.ts +1100 -0
- package/src/specs/NativeComponentMarker.ts +326 -0
- package/src/specs/NativeComponentOverlay.ts +98 -0
- package/src/specs/NativeComponentPolyline.ts +124 -0
- package/src/specs/NativeComponentUrlTile.ts +128 -0
- package/src/specs/NativeComponentWMSTile.ts +107 -0
- package/LICENSE +0 -21
- package/README.md +0 -652
- package/android/src/main/assets/ula.kml +0 -1214
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapCallout.java +0 -23
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapFeature.java +0 -18
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapLiteManager.java +0 -20
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapLocalTileManager.java +0 -56
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +0 -500
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarker.java +0 -630
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarkerManager.java +0 -370
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapModule.java +0 -380
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlay.java +0 -169
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlayManager.java +0 -81
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapPolyline.java +0 -162
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapUrlTileManager.java +0 -97
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapView.java +0 -1384
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapWMSTileManager.java +0 -87
- package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +0 -65
- package/index.d.ts +0 -637
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -690
- package/ios/User.xcconfig +0 -0
- package/react-native-google-maps.podspec +0 -22
- package/src/Geojson.js +0 -334
- package/src/MapCallout.js +0 -51
- package/src/MapCalloutSubview.js +0 -44
- package/src/MapCircle.js +0 -150
- package/src/MapHeatmap.js +0 -99
- package/src/MapLocalTile.js +0 -52
- package/src/MapMarker.js +0 -377
- package/src/MapOverlay.js +0 -86
- package/src/MapPolygon.js +0 -202
- package/src/MapPolyline.js +0 -168
- package/src/MapUrlTile.js +0 -131
- package/src/MapView.js +0 -1160
- package/src/MapView.web.js +0 -1
- package/src/MapWMSTile.js +0 -122
- package/src/ProviderConstants.js +0 -2
- package/src/decorateMapComponent.js +0 -112
- package/src/index.js +0 -31
|
@@ -114,56 +114,4 @@
|
|
|
114
114
|
return NO;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
@end
|
|
117
|
+
@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(
|
|
116
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
117
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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": @(
|
|
786
|
-
@"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.
|
|
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.
|
|
1039
|
-
|
|
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:(
|
|
913
|
+
- (void)mapView:(AIRMap *)mapView regionWillChangeAnimated:(BOOL)animated
|
|
1052
914
|
{
|
|
1053
|
-
|
|
1054
|
-
|
|
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
|
-
|
|
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 (
|
|
1083
|
-
|
|
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.
|
|
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.
|
|
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
|
|