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
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
6
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
+
import com.facebook.react.common.MapBuilder;
|
|
8
|
+
import com.google.android.gms.maps.model.ButtCap;
|
|
9
|
+
import com.google.android.gms.maps.model.Cap;
|
|
10
|
+
import com.google.android.gms.maps.model.Dash;
|
|
11
|
+
import com.google.android.gms.maps.model.Dot;
|
|
12
|
+
import com.google.android.gms.maps.model.Gap;
|
|
13
|
+
import com.google.android.gms.maps.model.JointType;
|
|
14
|
+
import com.google.android.gms.maps.model.LatLng;
|
|
15
|
+
import com.google.android.gms.maps.model.PatternItem;
|
|
16
|
+
import com.google.android.gms.maps.model.Polyline;
|
|
17
|
+
import com.google.android.gms.maps.model.PolylineOptions;
|
|
18
|
+
import com.google.android.gms.maps.model.RoundCap;
|
|
19
|
+
import com.google.android.gms.maps.model.SquareCap;
|
|
20
|
+
import com.google.android.gms.maps.model.StrokeStyle;
|
|
21
|
+
import com.google.android.gms.maps.model.StyleSpan;
|
|
22
|
+
import com.google.maps.android.collections.PolylineManager;
|
|
23
|
+
import com.rnmaps.fabric.event.OnPressEvent;
|
|
24
|
+
|
|
25
|
+
import java.util.ArrayList;
|
|
26
|
+
import java.util.List;
|
|
27
|
+
import java.util.Map;
|
|
28
|
+
|
|
29
|
+
public class MapPolyline extends MapFeature {
|
|
30
|
+
|
|
31
|
+
private PolylineOptions polylineOptions;
|
|
32
|
+
private Polyline polyline;
|
|
33
|
+
|
|
34
|
+
private List<LatLng> coordinates;
|
|
35
|
+
private int color;
|
|
36
|
+
private float width;
|
|
37
|
+
private boolean tappable;
|
|
38
|
+
private boolean geodesic;
|
|
39
|
+
private float zIndex;
|
|
40
|
+
private Cap lineCap = new RoundCap();
|
|
41
|
+
private ReadableArray patternValues;
|
|
42
|
+
private List<PatternItem> pattern;
|
|
43
|
+
|
|
44
|
+
public MapPolyline(Context context) {
|
|
45
|
+
super(context);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public void setCoordinates(ReadableArray coordinates) {
|
|
49
|
+
this.coordinates = new ArrayList<>(coordinates.size());
|
|
50
|
+
for (int i = 0; i < coordinates.size(); i++) {
|
|
51
|
+
ReadableMap coordinate = coordinates.getMap(i);
|
|
52
|
+
this.coordinates.add(i,
|
|
53
|
+
new LatLng(coordinate.getDouble("latitude"), coordinate.getDouble("longitude")));
|
|
54
|
+
}
|
|
55
|
+
if (polyline != null) {
|
|
56
|
+
polyline.setPoints(this.coordinates);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public void setColor(int color) {
|
|
61
|
+
this.color = color;
|
|
62
|
+
if (polyline != null) {
|
|
63
|
+
polyline.setColor(color);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public void setStrokeColors(ReadableArray strokeColors) {
|
|
68
|
+
List<StyleSpan> spans = new ArrayList<>();
|
|
69
|
+
for (int i = 0; i < strokeColors.size(); i++) {
|
|
70
|
+
StrokeStyle stroke;
|
|
71
|
+
|
|
72
|
+
if (i == 0) {
|
|
73
|
+
stroke = StrokeStyle.colorBuilder(strokeColors.getInt(i)).build();
|
|
74
|
+
} else {
|
|
75
|
+
stroke = StrokeStyle.gradientBuilder(strokeColors.getInt(i - 1), strokeColors.getInt(i)).build();
|
|
76
|
+
}
|
|
77
|
+
spans.add(new StyleSpan(stroke));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
polyline.setSpans(spans);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public void setWidth(float width) {
|
|
84
|
+
this.width = width;
|
|
85
|
+
if (polyline != null) {
|
|
86
|
+
polyline.setWidth(width);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public void setZIndex(float zIndex) {
|
|
91
|
+
this.zIndex = zIndex;
|
|
92
|
+
if (polyline != null) {
|
|
93
|
+
polyline.setZIndex(zIndex);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
public void setTappable(boolean tapabble) {
|
|
98
|
+
this.tappable = tapabble;
|
|
99
|
+
if (polyline != null) {
|
|
100
|
+
polyline.setClickable(tappable);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public void setGeodesic(boolean geodesic) {
|
|
105
|
+
this.geodesic = geodesic;
|
|
106
|
+
if (polyline != null) {
|
|
107
|
+
polyline.setGeodesic(geodesic);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
public void setLineCap(Cap cap) {
|
|
112
|
+
this.lineCap = cap;
|
|
113
|
+
if (polyline != null) {
|
|
114
|
+
polyline.setStartCap(cap);
|
|
115
|
+
polyline.setEndCap(cap);
|
|
116
|
+
}
|
|
117
|
+
this.applyPattern();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
public void setLineDashPattern(ReadableArray patternValues) {
|
|
121
|
+
this.patternValues = patternValues;
|
|
122
|
+
this.applyPattern();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
private void applyPattern() {
|
|
126
|
+
if (patternValues == null) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
this.pattern = new ArrayList<>(patternValues.size());
|
|
130
|
+
for (int i = 0; i < patternValues.size(); i++) {
|
|
131
|
+
float patternValue = (float) patternValues.getDouble(i);
|
|
132
|
+
boolean isGap = i % 2 != 0;
|
|
133
|
+
if (isGap) {
|
|
134
|
+
this.pattern.add(new Gap(patternValue));
|
|
135
|
+
} else {
|
|
136
|
+
PatternItem patternItem;
|
|
137
|
+
boolean isLineCapRound = this.lineCap instanceof RoundCap;
|
|
138
|
+
if (isLineCapRound) {
|
|
139
|
+
patternItem = new Dot();
|
|
140
|
+
} else {
|
|
141
|
+
patternItem = new Dash(patternValue);
|
|
142
|
+
}
|
|
143
|
+
this.pattern.add(patternItem);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (polyline != null) {
|
|
147
|
+
polyline.setPattern(this.pattern);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public PolylineOptions getPolylineOptions() {
|
|
152
|
+
if (polylineOptions == null) {
|
|
153
|
+
polylineOptions = createPolylineOptions();
|
|
154
|
+
}
|
|
155
|
+
return polylineOptions;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
private PolylineOptions createPolylineOptions() {
|
|
159
|
+
PolylineOptions options = new PolylineOptions();
|
|
160
|
+
options.addAll(coordinates);
|
|
161
|
+
options.color(color);
|
|
162
|
+
options.width(width);
|
|
163
|
+
options.geodesic(geodesic);
|
|
164
|
+
options.zIndex(zIndex);
|
|
165
|
+
options.startCap(lineCap);
|
|
166
|
+
options.endCap(lineCap);
|
|
167
|
+
options.pattern(this.pattern);
|
|
168
|
+
return options;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
@Override
|
|
172
|
+
public Object getFeature() {
|
|
173
|
+
return polyline;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@Override
|
|
177
|
+
public void addToMap(Object collection) {
|
|
178
|
+
PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
|
|
179
|
+
polyline = polylineCollection.addPolyline(getPolylineOptions());
|
|
180
|
+
polyline.setClickable(this.tappable);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@Override
|
|
184
|
+
public void removeFromMap(Object collection) {
|
|
185
|
+
PolylineManager.Collection polylineCollection = (PolylineManager.Collection) collection;
|
|
186
|
+
polylineCollection.remove(polyline);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
public void setLineCap(String lineCap) {
|
|
190
|
+
Cap cap;
|
|
191
|
+
switch (lineCap) {
|
|
192
|
+
case "round":
|
|
193
|
+
cap = new RoundCap();
|
|
194
|
+
break;
|
|
195
|
+
case "square":
|
|
196
|
+
cap = new SquareCap();
|
|
197
|
+
break;
|
|
198
|
+
case "butt":
|
|
199
|
+
default:
|
|
200
|
+
cap = new ButtCap();
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
setLineCap(cap);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
|
|
207
|
+
MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
|
|
208
|
+
builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
|
|
209
|
+
return builder.build();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public void setLineJoin(String lineJoin) {
|
|
213
|
+
int type;
|
|
214
|
+
switch (lineJoin) {
|
|
215
|
+
case "round":
|
|
216
|
+
type = JointType.ROUND;
|
|
217
|
+
break;
|
|
218
|
+
case "bevel":
|
|
219
|
+
type = JointType.BEVEL;
|
|
220
|
+
break;
|
|
221
|
+
case "miter":
|
|
222
|
+
default:
|
|
223
|
+
type = JointType.DEFAULT;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
if (polyline != null) {
|
|
227
|
+
polyline.setJointType(type);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.graphics.Color;
|
|
5
|
-
import android.os.Build;
|
|
6
5
|
import android.util.DisplayMetrics;
|
|
7
6
|
import android.view.WindowManager;
|
|
8
7
|
|
|
@@ -21,19 +20,15 @@ import com.google.android.gms.maps.model.SquareCap;
|
|
|
21
20
|
|
|
22
21
|
import java.util.Map;
|
|
23
22
|
|
|
24
|
-
public class
|
|
23
|
+
public class MapPolylineManager extends ViewGroupManager<MapPolyline> {
|
|
25
24
|
private final DisplayMetrics metrics;
|
|
26
25
|
|
|
27
|
-
public
|
|
26
|
+
public MapPolylineManager(ReactApplicationContext reactContext) {
|
|
28
27
|
super();
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.getRealMetrics(metrics);
|
|
34
|
-
} else {
|
|
35
|
-
metrics = reactContext.getResources().getDisplayMetrics();
|
|
36
|
-
}
|
|
28
|
+
metrics = new DisplayMetrics();
|
|
29
|
+
((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
|
|
30
|
+
.getDefaultDisplay()
|
|
31
|
+
.getRealMetrics(metrics);
|
|
37
32
|
}
|
|
38
33
|
|
|
39
34
|
@Override
|
|
@@ -42,63 +37,48 @@ public class AirMapPolylineManager extends ViewGroupManager<AirMapPolyline> {
|
|
|
42
37
|
}
|
|
43
38
|
|
|
44
39
|
@Override
|
|
45
|
-
public
|
|
46
|
-
return new
|
|
40
|
+
public MapPolyline createViewInstance(ThemedReactContext context) {
|
|
41
|
+
return new MapPolyline(context);
|
|
47
42
|
}
|
|
48
43
|
|
|
49
44
|
@ReactProp(name = "coordinates")
|
|
50
|
-
public void setCoordinate(
|
|
45
|
+
public void setCoordinate(MapPolyline view, ReadableArray coordinates) {
|
|
51
46
|
view.setCoordinates(coordinates);
|
|
52
47
|
}
|
|
53
48
|
|
|
54
49
|
@ReactProp(name = "strokeWidth", defaultFloat = 1f)
|
|
55
|
-
public void setStrokeWidth(
|
|
50
|
+
public void setStrokeWidth(MapPolyline view, float widthInPoints) {
|
|
56
51
|
float widthInScreenPx = metrics.density * widthInPoints; // done for parity with iOS
|
|
57
52
|
view.setWidth(widthInScreenPx);
|
|
58
53
|
}
|
|
59
54
|
|
|
60
55
|
@ReactProp(name = "strokeColor", defaultInt = Color.RED, customType = "Color")
|
|
61
|
-
public void setStrokeColor(
|
|
56
|
+
public void setStrokeColor(MapPolyline view, int color) {
|
|
62
57
|
view.setColor(color);
|
|
63
58
|
}
|
|
64
59
|
|
|
65
60
|
@ReactProp(name = "tappable", defaultBoolean = false)
|
|
66
|
-
public void setTappable(
|
|
61
|
+
public void setTappable(MapPolyline view, boolean tapabble) {
|
|
67
62
|
view.setTappable(tapabble);
|
|
68
63
|
}
|
|
69
64
|
|
|
70
65
|
@ReactProp(name = "geodesic", defaultBoolean = false)
|
|
71
|
-
public void setGeodesic(
|
|
66
|
+
public void setGeodesic(MapPolyline view, boolean geodesic) {
|
|
72
67
|
view.setGeodesic(geodesic);
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
@ReactProp(name = "zIndex", defaultFloat = 1.0f)
|
|
76
|
-
public void setZIndex(
|
|
71
|
+
public void setZIndex(MapPolyline view, float zIndex) {
|
|
77
72
|
view.setZIndex(zIndex);
|
|
78
73
|
}
|
|
79
74
|
|
|
80
75
|
@ReactProp(name = "lineCap")
|
|
81
|
-
public void setlineCap(
|
|
82
|
-
|
|
83
|
-
switch (lineCap) {
|
|
84
|
-
case "butt":
|
|
85
|
-
cap = new ButtCap();
|
|
86
|
-
break;
|
|
87
|
-
case "round":
|
|
88
|
-
cap = new RoundCap();
|
|
89
|
-
break;
|
|
90
|
-
case "square":
|
|
91
|
-
cap = new SquareCap();
|
|
92
|
-
break;
|
|
93
|
-
default:
|
|
94
|
-
cap = new RoundCap();
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
view.setLineCap(cap);
|
|
76
|
+
public void setlineCap(MapPolyline view, String lineCap) {
|
|
77
|
+
view.setLineCap(lineCap);
|
|
98
78
|
}
|
|
99
79
|
|
|
100
80
|
@ReactProp(name = "lineDashPattern")
|
|
101
|
-
public void setLineDashPattern(
|
|
81
|
+
public void setLineDashPattern(MapPolyline view, ReadableArray patternValues) {
|
|
102
82
|
view.setLineDashPattern(patternValues);
|
|
103
83
|
}
|
|
104
84
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
|
|
@@ -14,12 +14,8 @@ import android.graphics.Color;
|
|
|
14
14
|
import android.graphics.Paint;
|
|
15
15
|
import android.graphics.Rect;
|
|
16
16
|
|
|
17
|
-
import androidx.annotation.NonNull;
|
|
18
17
|
import androidx.work.OneTimeWorkRequest;
|
|
19
18
|
import androidx.work.WorkManager;
|
|
20
|
-
import androidx.work.WorkRequest;
|
|
21
|
-
import androidx.work.Worker;
|
|
22
|
-
import androidx.work.WorkerParameters;
|
|
23
19
|
import androidx.work.Data;
|
|
24
20
|
import androidx.work.Constraints;
|
|
25
21
|
import androidx.work.NetworkType;
|
|
@@ -27,10 +23,7 @@ import androidx.work.ExistingWorkPolicy;
|
|
|
27
23
|
import androidx.work.Operation;
|
|
28
24
|
import androidx.work.WorkInfo;
|
|
29
25
|
|
|
30
|
-
import com.google.android.gms.maps.GoogleMap;
|
|
31
26
|
import com.google.android.gms.maps.model.Tile;
|
|
32
|
-
import com.google.android.gms.maps.model.TileOverlay;
|
|
33
|
-
import com.google.android.gms.maps.model.TileOverlayOptions;
|
|
34
27
|
import com.google.android.gms.maps.model.TileProvider;
|
|
35
28
|
import com.google.android.gms.maps.model.UrlTileProvider;
|
|
36
29
|
|
|
@@ -48,7 +41,7 @@ import java.net.MalformedURLException;
|
|
|
48
41
|
import java.net.URL;
|
|
49
42
|
import java.net.URLConnection;
|
|
50
43
|
|
|
51
|
-
public class
|
|
44
|
+
public class MapTileProvider implements TileProvider {
|
|
52
45
|
|
|
53
46
|
class AIRMapUrlTileProvider extends UrlTileProvider {
|
|
54
47
|
private String urlTemplate;
|
|
@@ -61,7 +54,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
61
54
|
@Override
|
|
62
55
|
public URL getTileUrl(int x, int y, int zoom) {
|
|
63
56
|
|
|
64
|
-
if (
|
|
57
|
+
if (MapTileProvider.this.flipY) {
|
|
65
58
|
y = (1 << zoom) - y - 1;
|
|
66
59
|
}
|
|
67
60
|
|
|
@@ -69,14 +62,14 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
69
62
|
.replace("{x}", Integer.toString(x))
|
|
70
63
|
.replace("{y}", Integer.toString(y))
|
|
71
64
|
.replace("{z}", Integer.toString(zoom));
|
|
72
|
-
URL url
|
|
65
|
+
URL url;
|
|
73
66
|
|
|
74
|
-
if(
|
|
75
|
-
return
|
|
67
|
+
if(MapTileProvider.this.maximumZ > 0 && zoom > MapTileProvider.this.maximumZ) {
|
|
68
|
+
return null;
|
|
76
69
|
}
|
|
77
70
|
|
|
78
|
-
if(
|
|
79
|
-
return
|
|
71
|
+
if(MapTileProvider.this.minimumZ > 0 && zoom < MapTileProvider.this.minimumZ) {
|
|
72
|
+
return null;
|
|
80
73
|
}
|
|
81
74
|
|
|
82
75
|
try {
|
|
@@ -108,9 +101,9 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
108
101
|
protected Context context;
|
|
109
102
|
protected boolean customMode;
|
|
110
103
|
|
|
111
|
-
public
|
|
112
|
-
|
|
113
|
-
|
|
104
|
+
public MapTileProvider(int tileSizet, boolean doubleTileSize, String urlTemplate,
|
|
105
|
+
int maximumZ, int maximumNativeZ, int minimumZ, boolean flipY, String tileCachePath,
|
|
106
|
+
int tileCacheMaxAge, boolean offlineMode, Context context, boolean customMode) {
|
|
114
107
|
this.tileProvider = new AIRMapUrlTileProvider(tileSizet, tileSizet, urlTemplate);
|
|
115
108
|
|
|
116
109
|
this.tileSize = tileSizet;
|
|
@@ -152,7 +145,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
152
145
|
if (image == null && this.tileCachePath != null && this.offlineMode) {
|
|
153
146
|
Log.d("urlTile", "findLowerZoomTileForScaling");
|
|
154
147
|
int zoomLevelToStart = (zoom > this.maximumNativeZ) ? this.maximumNativeZ - 1 : zoom - 1;
|
|
155
|
-
int minimumZoomToSearch =
|
|
148
|
+
int minimumZoomToSearch = Math.max(this.minimumZ, zoom - 3);
|
|
156
149
|
for (int tryZoom = zoomLevelToStart; tryZoom >= minimumZoomToSearch; tryZoom--) {
|
|
157
150
|
image = scaleLowerZoomTile(x, y, zoom, tryZoom);
|
|
158
151
|
if (image != null) {
|
|
@@ -166,16 +159,15 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
166
159
|
|
|
167
160
|
byte[] getTileImage(int x, int y, int zoom) {
|
|
168
161
|
byte[] image = null;
|
|
169
|
-
|
|
170
|
-
|
|
162
|
+
|
|
171
163
|
if (this.tileCachePath != null) {
|
|
172
164
|
image = readTileImage(x, y, zoom);
|
|
173
165
|
if (image != null) {
|
|
174
|
-
Log.d("urlTile
|
|
175
|
-
"/" +
|
|
166
|
+
Log.d("urlTile", "tile cache HIT for " + zoom +
|
|
167
|
+
"/" + x + "/" + y);
|
|
176
168
|
} else {
|
|
177
|
-
Log.d("urlTile
|
|
178
|
-
"/" +
|
|
169
|
+
Log.d("urlTile", "tile cache MISS for " + zoom +
|
|
170
|
+
"/" + x + "/" + y);
|
|
179
171
|
}
|
|
180
172
|
if (image != null && !this.offlineMode) {
|
|
181
173
|
checkForRefresh(x, y, zoom);
|
|
@@ -187,7 +179,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
187
179
|
Constraints constraints = new Constraints.Builder()
|
|
188
180
|
.setRequiredNetworkType(NetworkType.CONNECTED)
|
|
189
181
|
.build();
|
|
190
|
-
OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(
|
|
182
|
+
OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(MapTileWorker.class)
|
|
191
183
|
.setConstraints(constraints)
|
|
192
184
|
.addTag(fileName)
|
|
193
185
|
.setInputData(
|
|
@@ -198,39 +190,35 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
198
190
|
.build()
|
|
199
191
|
)
|
|
200
192
|
.build();
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
"/" + Integer.toString(x) + "/" + Integer.toString(y));
|
|
220
|
-
}
|
|
193
|
+
WorkManager workManager = WorkManager.getInstance(this.context.getApplicationContext());
|
|
194
|
+
Operation fetchOperation = workManager
|
|
195
|
+
.enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
|
|
196
|
+
Future<Operation.State.SUCCESS> operationFuture = fetchOperation.getResult();
|
|
197
|
+
try {
|
|
198
|
+
operationFuture.get(1L, TimeUnit.SECONDS);
|
|
199
|
+
Thread.sleep(500);
|
|
200
|
+
Future<List<WorkInfo>> fetchFuture = workManager.getWorkInfosByTag(fileName);
|
|
201
|
+
List<WorkInfo> workInfo = fetchFuture.get(1L, TimeUnit.SECONDS);
|
|
202
|
+
Log.d("urlTile: ", workInfo.get(0).toString());
|
|
203
|
+
if (this.tileCachePath != null) {
|
|
204
|
+
image = readTileImage(x, y, zoom);
|
|
205
|
+
if (image != null) {
|
|
206
|
+
Log.d("urlTile","tile cache fetch HIT for " + zoom +
|
|
207
|
+
"/" + x + "/" + y);
|
|
208
|
+
} else {
|
|
209
|
+
Log.d("urlTile","tile cache fetch MISS for " + zoom +
|
|
210
|
+
"/" + x + "/" + y);
|
|
221
211
|
}
|
|
222
|
-
} catch (Exception e) {
|
|
223
|
-
e.printStackTrace();
|
|
224
212
|
}
|
|
225
|
-
}
|
|
226
|
-
|
|
213
|
+
} catch (Exception e) {
|
|
214
|
+
e.printStackTrace();
|
|
227
215
|
}
|
|
228
|
-
} else if (
|
|
216
|
+
} else if (image == null && !this.offlineMode) {
|
|
229
217
|
Log.d("urlTile", "Normal fetch");
|
|
230
218
|
image = fetchTile(x, y, zoom);
|
|
231
219
|
if (image == null) {
|
|
232
|
-
Log.d("urlTile
|
|
233
|
-
"/" +
|
|
220
|
+
Log.d("urlTile", "tile fetch TIMEOUT / FAIL for " + zoom +
|
|
221
|
+
"/" + x + "/" + y);
|
|
234
222
|
}
|
|
235
223
|
}
|
|
236
224
|
|
|
@@ -304,7 +292,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
304
292
|
int yParent = y >> overZoomLevel;
|
|
305
293
|
int zoomParent = zoom - overZoomLevel;
|
|
306
294
|
|
|
307
|
-
int xOffset = x % zoomFactor
|
|
295
|
+
int xOffset = x % zoomFactor;
|
|
308
296
|
int yOffset = y % zoomFactor;
|
|
309
297
|
|
|
310
298
|
byte[] data;
|
|
@@ -340,7 +328,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
340
328
|
Constraints constraints = new Constraints.Builder()
|
|
341
329
|
.setRequiredNetworkType(NetworkType.CONNECTED)
|
|
342
330
|
.build();
|
|
343
|
-
OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(
|
|
331
|
+
OneTimeWorkRequest tileRefreshWorkRequest = new OneTimeWorkRequest.Builder(MapTileWorker.class)
|
|
344
332
|
.setConstraints(constraints)
|
|
345
333
|
.addTag(fileName)
|
|
346
334
|
.setInputData(
|
|
@@ -351,11 +339,9 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
351
339
|
.build()
|
|
352
340
|
)
|
|
353
341
|
.build();
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
}
|
|
342
|
+
WorkManager.getInstance(this.context.getApplicationContext())
|
|
343
|
+
.enqueueUniqueWork(fileName, ExistingWorkPolicy.KEEP, tileRefreshWorkRequest);
|
|
344
|
+
}
|
|
359
345
|
}
|
|
360
346
|
|
|
361
347
|
byte[] fetchTile(int x, int y, int zoom) {
|
|
@@ -377,10 +363,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
377
363
|
buffer.flush();
|
|
378
364
|
|
|
379
365
|
return buffer.toByteArray();
|
|
380
|
-
} catch (IOException e) {
|
|
381
|
-
e.printStackTrace();
|
|
382
|
-
return null;
|
|
383
|
-
} catch (OutOfMemoryError e) {
|
|
366
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
384
367
|
e.printStackTrace();
|
|
385
368
|
return null;
|
|
386
369
|
} finally {
|
|
@@ -416,10 +399,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
416
399
|
}
|
|
417
400
|
|
|
418
401
|
return buffer.toByteArray();
|
|
419
|
-
} catch (IOException e) {
|
|
420
|
-
e.printStackTrace();
|
|
421
|
-
return null;
|
|
422
|
-
} catch (OutOfMemoryError e) {
|
|
402
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
423
403
|
e.printStackTrace();
|
|
424
404
|
return null;
|
|
425
405
|
} finally {
|
|
@@ -442,10 +422,7 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
442
422
|
out.write(image);
|
|
443
423
|
|
|
444
424
|
return true;
|
|
445
|
-
} catch (IOException e) {
|
|
446
|
-
e.printStackTrace();
|
|
447
|
-
return false;
|
|
448
|
-
} catch (OutOfMemoryError e) {
|
|
425
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
449
426
|
e.printStackTrace();
|
|
450
427
|
return false;
|
|
451
428
|
} finally {
|
|
@@ -457,9 +434,8 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
457
434
|
if (this.tileCachePath == null) {
|
|
458
435
|
return null;
|
|
459
436
|
}
|
|
460
|
-
|
|
461
|
-
"/" +
|
|
462
|
-
return s;
|
|
437
|
+
return this.tileCachePath + '/' + zoom +
|
|
438
|
+
"/" + x + "/" + y;
|
|
463
439
|
}
|
|
464
440
|
|
|
465
441
|
protected URL getTileUrl(int x, int y, int zoom) {
|
|
@@ -467,6 +443,10 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
467
443
|
}
|
|
468
444
|
|
|
469
445
|
public void setUrlTemplate(String urlTemplate) {
|
|
446
|
+
if (this.urlTemplate != urlTemplate) {
|
|
447
|
+
this.tileProvider = new AIRMapUrlTileProvider(tileSize, tileSize, urlTemplate);
|
|
448
|
+
}
|
|
449
|
+
|
|
470
450
|
this.urlTemplate = urlTemplate;
|
|
471
451
|
}
|
|
472
452
|
|
|
@@ -510,6 +490,5 @@ public class AirMapTileProvider implements TileProvider {
|
|
|
510
490
|
}
|
|
511
491
|
|
|
512
492
|
public void setCustomMode() {
|
|
513
|
-
this.customMode = customMode;
|
|
514
493
|
}
|
|
515
494
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
|
|
@@ -10,7 +10,6 @@ import androidx.work.WorkerParameters;
|
|
|
10
10
|
|
|
11
11
|
import java.io.ByteArrayOutputStream;
|
|
12
12
|
import java.io.File;
|
|
13
|
-
import java.io.FileInputStream;
|
|
14
13
|
import java.io.FileOutputStream;
|
|
15
14
|
import java.io.InputStream;
|
|
16
15
|
import java.io.OutputStream;
|
|
@@ -19,10 +18,10 @@ import java.io.IOException;
|
|
|
19
18
|
import java.net.MalformedURLException;
|
|
20
19
|
import java.net.URL;
|
|
21
20
|
|
|
22
|
-
public class
|
|
21
|
+
public class MapTileWorker extends Worker {
|
|
23
22
|
private static final int BUFFER_SIZE = 16 * 1024;
|
|
24
23
|
|
|
25
|
-
public
|
|
24
|
+
public MapTileWorker(
|
|
26
25
|
@NonNull Context context,
|
|
27
26
|
@NonNull WorkerParameters params) {
|
|
28
27
|
super(context, params);
|
|
@@ -30,8 +29,8 @@ public class AirMapTileWorker extends Worker {
|
|
|
30
29
|
|
|
31
30
|
@Override
|
|
32
31
|
public Result doWork() {
|
|
33
|
-
byte[] image
|
|
34
|
-
URL url
|
|
32
|
+
byte[] image;
|
|
33
|
+
URL url;
|
|
35
34
|
String fileName = getInputData().getString("filename");
|
|
36
35
|
|
|
37
36
|
try {
|
|
@@ -84,10 +83,7 @@ public class AirMapTileWorker extends Worker {
|
|
|
84
83
|
buffer.flush();
|
|
85
84
|
|
|
86
85
|
return buffer.toByteArray();
|
|
87
|
-
} catch (IOException e) {
|
|
88
|
-
e.printStackTrace();
|
|
89
|
-
return null;
|
|
90
|
-
} catch (OutOfMemoryError e) {
|
|
86
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
91
87
|
e.printStackTrace();
|
|
92
88
|
return null;
|
|
93
89
|
} finally {
|
|
@@ -109,10 +105,7 @@ public class AirMapTileWorker extends Worker {
|
|
|
109
105
|
out.write(image);
|
|
110
106
|
|
|
111
107
|
return true;
|
|
112
|
-
} catch (IOException e) {
|
|
113
|
-
e.printStackTrace();
|
|
114
|
-
return false;
|
|
115
|
-
} catch (OutOfMemoryError e) {
|
|
108
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
116
109
|
e.printStackTrace();
|
|
117
110
|
return false;
|
|
118
111
|
} finally {
|