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
|
@@ -1,380 +0,0 @@
|
|
|
1
|
-
package com.airbnb.android.react.maps;
|
|
2
|
-
|
|
3
|
-
import android.app.Activity;
|
|
4
|
-
import android.graphics.Bitmap;
|
|
5
|
-
import android.graphics.Point;
|
|
6
|
-
import android.location.Address;
|
|
7
|
-
import android.location.Geocoder;
|
|
8
|
-
import android.net.Uri;
|
|
9
|
-
import android.util.Base64;
|
|
10
|
-
import android.util.DisplayMetrics;
|
|
11
|
-
import android.util.Log;
|
|
12
|
-
|
|
13
|
-
import androidx.annotation.Nullable;
|
|
14
|
-
import androidx.annotation.NonNull;
|
|
15
|
-
|
|
16
|
-
import com.facebook.react.bridge.Promise;
|
|
17
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
18
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
19
|
-
import com.facebook.react.bridge.ReactMethod;
|
|
20
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
21
|
-
import com.facebook.react.bridge.WritableMap;
|
|
22
|
-
import com.facebook.react.bridge.WritableNativeMap;
|
|
23
|
-
import com.facebook.react.module.annotations.ReactModule;
|
|
24
|
-
import com.facebook.react.uimanager.NativeViewHierarchyManager;
|
|
25
|
-
import com.facebook.react.uimanager.UIBlock;
|
|
26
|
-
import com.facebook.react.uimanager.UIManagerModule;
|
|
27
|
-
import com.google.android.gms.maps.GoogleMap;
|
|
28
|
-
import com.google.android.gms.maps.MapsInitializer;
|
|
29
|
-
import com.google.android.gms.maps.OnMapsSdkInitializedCallback;
|
|
30
|
-
import com.google.android.gms.maps.model.CameraPosition;
|
|
31
|
-
import com.google.android.gms.maps.model.LatLng;
|
|
32
|
-
|
|
33
|
-
import java.io.ByteArrayOutputStream;
|
|
34
|
-
import java.io.Closeable;
|
|
35
|
-
import java.io.File;
|
|
36
|
-
import java.io.FileOutputStream;
|
|
37
|
-
import java.io.IOException;
|
|
38
|
-
|
|
39
|
-
import java.util.List;
|
|
40
|
-
import java.util.Map;
|
|
41
|
-
import java.util.HashMap;
|
|
42
|
-
|
|
43
|
-
@ReactModule(name = AirMapModule.NAME)
|
|
44
|
-
public class AirMapModule extends ReactContextBaseJavaModule {
|
|
45
|
-
|
|
46
|
-
public static final String NAME = "AirMapModule";
|
|
47
|
-
private static final String SNAPSHOT_RESULT_FILE = "file";
|
|
48
|
-
private static final String SNAPSHOT_RESULT_BASE64 = "base64";
|
|
49
|
-
private static final String SNAPSHOT_FORMAT_PNG = "png";
|
|
50
|
-
private static final String SNAPSHOT_FORMAT_JPG = "jpg";
|
|
51
|
-
|
|
52
|
-
public AirMapModule(ReactApplicationContext reactContext) {
|
|
53
|
-
super(reactContext);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@Override
|
|
57
|
-
public String getName() {
|
|
58
|
-
return NAME;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@Override
|
|
62
|
-
public Map<String, Object> getConstants() {
|
|
63
|
-
final Map<String, Object> constants = new HashMap<>();
|
|
64
|
-
constants.put("legalNotice", "This license information is displayed in Settings > Google > Open Source on any device running Google Play services.");
|
|
65
|
-
return constants;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public Activity getActivity() {
|
|
69
|
-
return getCurrentActivity();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public static void closeQuietly(Closeable closeable) {
|
|
73
|
-
if (closeable == null) return;
|
|
74
|
-
try {
|
|
75
|
-
closeable.close();
|
|
76
|
-
} catch (IOException ignored) {
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@ReactMethod
|
|
81
|
-
public void takeSnapshot(final int tag, final ReadableMap options, final Promise promise) {
|
|
82
|
-
|
|
83
|
-
// Parse and verity options
|
|
84
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
85
|
-
final String format = options.hasKey("format") ? options.getString("format") : "png";
|
|
86
|
-
final Bitmap.CompressFormat compressFormat =
|
|
87
|
-
format.equals(SNAPSHOT_FORMAT_PNG) ? Bitmap.CompressFormat.PNG :
|
|
88
|
-
format.equals(SNAPSHOT_FORMAT_JPG) ? Bitmap.CompressFormat.JPEG : null;
|
|
89
|
-
final double quality = options.hasKey("quality") ? options.getDouble("quality") : 1.0;
|
|
90
|
-
final DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
|
|
91
|
-
final Integer width =
|
|
92
|
-
options.hasKey("width") ? (int) (displayMetrics.density * options.getDouble("width")) : 0;
|
|
93
|
-
final Integer height =
|
|
94
|
-
options.hasKey("height") ? (int) (displayMetrics.density * options.getDouble("height")) : 0;
|
|
95
|
-
final String result = options.hasKey("result") ? options.getString("result") : "file";
|
|
96
|
-
|
|
97
|
-
// Add UI-block so we can get a valid reference to the map-view
|
|
98
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
99
|
-
uiManager.addUIBlock(new UIBlock() {
|
|
100
|
-
public void execute(NativeViewHierarchyManager nvhm) {
|
|
101
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
102
|
-
if (view == null) {
|
|
103
|
-
promise.reject("AirMapView not found");
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
if (view.map == null) {
|
|
107
|
-
promise.reject("AirMapView.map is not valid");
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
view.map.snapshot(new GoogleMap.SnapshotReadyCallback() {
|
|
111
|
-
public void onSnapshotReady(@Nullable Bitmap snapshot) {
|
|
112
|
-
|
|
113
|
-
// Convert image to requested width/height if necessary
|
|
114
|
-
if (snapshot == null) {
|
|
115
|
-
promise.reject("Failed to generate bitmap, snapshot = null");
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if ((width != 0) && (height != 0) &&
|
|
119
|
-
(width != snapshot.getWidth() || height != snapshot.getHeight())) {
|
|
120
|
-
snapshot = Bitmap.createScaledBitmap(snapshot, width, height, true);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Save the snapshot to disk
|
|
124
|
-
if (result.equals(SNAPSHOT_RESULT_FILE)) {
|
|
125
|
-
File tempFile;
|
|
126
|
-
FileOutputStream outputStream;
|
|
127
|
-
try {
|
|
128
|
-
tempFile =
|
|
129
|
-
File.createTempFile("AirMapSnapshot", "." + format, context.getCacheDir());
|
|
130
|
-
outputStream = new FileOutputStream(tempFile);
|
|
131
|
-
} catch (Exception e) {
|
|
132
|
-
promise.reject(e);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
snapshot.compress(compressFormat, (int) (100.0 * quality), outputStream);
|
|
136
|
-
closeQuietly(outputStream);
|
|
137
|
-
String uri = Uri.fromFile(tempFile).toString();
|
|
138
|
-
promise.resolve(uri);
|
|
139
|
-
} else if (result.equals(SNAPSHOT_RESULT_BASE64)) {
|
|
140
|
-
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
141
|
-
snapshot.compress(compressFormat, (int) (100.0 * quality), outputStream);
|
|
142
|
-
closeQuietly(outputStream);
|
|
143
|
-
byte[] bytes = outputStream.toByteArray();
|
|
144
|
-
String data = Base64.encodeToString(bytes, Base64.NO_WRAP);
|
|
145
|
-
promise.resolve(data);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
@ReactMethod
|
|
154
|
-
public void getCamera(final int tag, final Promise promise) {
|
|
155
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
156
|
-
|
|
157
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
158
|
-
uiManager.addUIBlock(new UIBlock()
|
|
159
|
-
{
|
|
160
|
-
@Override
|
|
161
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
162
|
-
{
|
|
163
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
164
|
-
if (view == null) {
|
|
165
|
-
promise.reject("AirMapView not found");
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
if (view.map == null) {
|
|
169
|
-
promise.reject("AirMapView.map is not valid");
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
CameraPosition position = view.map.getCameraPosition();
|
|
174
|
-
|
|
175
|
-
WritableMap centerJson = new WritableNativeMap();
|
|
176
|
-
centerJson.putDouble("latitude", position.target.latitude);
|
|
177
|
-
centerJson.putDouble("longitude", position.target.longitude);
|
|
178
|
-
|
|
179
|
-
WritableMap cameraJson = new WritableNativeMap();
|
|
180
|
-
cameraJson.putMap("center", centerJson);
|
|
181
|
-
cameraJson.putDouble("heading", (double)position.bearing);
|
|
182
|
-
cameraJson.putDouble("zoom", (double)position.zoom);
|
|
183
|
-
cameraJson.putDouble("pitch", (double)position.tilt);
|
|
184
|
-
|
|
185
|
-
promise.resolve(cameraJson);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
@ReactMethod
|
|
191
|
-
public void getAddressFromCoordinates(final int tag, final ReadableMap coordinate, final Promise promise) {
|
|
192
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
193
|
-
|
|
194
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
195
|
-
uiManager.addUIBlock(new UIBlock()
|
|
196
|
-
{
|
|
197
|
-
@Override
|
|
198
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
199
|
-
{
|
|
200
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
201
|
-
if (view == null) {
|
|
202
|
-
promise.reject("AirMapView not found");
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
if (view.map == null) {
|
|
206
|
-
promise.reject("AirMapView.map is not valid");
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
if (coordinate == null ||
|
|
210
|
-
!coordinate.hasKey("latitude") ||
|
|
211
|
-
!coordinate.hasKey("longitude")) {
|
|
212
|
-
promise.reject("Invalid coordinate format");
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
Geocoder geocoder = new Geocoder(context);
|
|
216
|
-
try {
|
|
217
|
-
List<Address> list =
|
|
218
|
-
geocoder.getFromLocation(coordinate.getDouble("latitude"),coordinate.getDouble("longitude"),1);
|
|
219
|
-
if (list.isEmpty()) {
|
|
220
|
-
promise.reject("Can not get address location");
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
Address address = list.get(0);
|
|
224
|
-
|
|
225
|
-
WritableMap addressJson = new WritableNativeMap();
|
|
226
|
-
addressJson.putString("name", address.getFeatureName());
|
|
227
|
-
addressJson.putString("locality", address.getLocality());
|
|
228
|
-
addressJson.putString("thoroughfare", address.getThoroughfare());
|
|
229
|
-
addressJson.putString("subThoroughfare", address.getSubThoroughfare());
|
|
230
|
-
addressJson.putString("subLocality", address.getSubLocality());
|
|
231
|
-
addressJson.putString("administrativeArea", address.getAdminArea());
|
|
232
|
-
addressJson.putString("subAdministrativeArea", address.getSubAdminArea());
|
|
233
|
-
addressJson.putString("postalCode", address.getPostalCode());
|
|
234
|
-
addressJson.putString("countryCode", address.getCountryCode());
|
|
235
|
-
addressJson.putString("country", address.getCountryName());
|
|
236
|
-
|
|
237
|
-
promise.resolve(addressJson);
|
|
238
|
-
} catch (IOException e) {
|
|
239
|
-
promise.reject("Can not get address location");
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
@ReactMethod
|
|
246
|
-
public void pointForCoordinate(final int tag, ReadableMap coordinate, final Promise promise) {
|
|
247
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
248
|
-
final double density = (double) context.getResources().getDisplayMetrics().density;
|
|
249
|
-
|
|
250
|
-
final LatLng coord = new LatLng(
|
|
251
|
-
coordinate.hasKey("latitude") ? coordinate.getDouble("latitude") : 0.0,
|
|
252
|
-
coordinate.hasKey("longitude") ? coordinate.getDouble("longitude") : 0.0
|
|
253
|
-
);
|
|
254
|
-
|
|
255
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
256
|
-
uiManager.addUIBlock(new UIBlock()
|
|
257
|
-
{
|
|
258
|
-
@Override
|
|
259
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
260
|
-
{
|
|
261
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
262
|
-
if (view == null) {
|
|
263
|
-
promise.reject("AirMapView not found");
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (view.map == null) {
|
|
267
|
-
promise.reject("AirMapView.map is not valid");
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
Point pt = view.map.getProjection().toScreenLocation(coord);
|
|
272
|
-
|
|
273
|
-
WritableMap ptJson = new WritableNativeMap();
|
|
274
|
-
ptJson.putDouble("x", (double)pt.x / density);
|
|
275
|
-
ptJson.putDouble("y", (double)pt.y / density);
|
|
276
|
-
|
|
277
|
-
promise.resolve(ptJson);
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
@ReactMethod
|
|
283
|
-
public void coordinateForPoint(final int tag, ReadableMap point, final Promise promise) {
|
|
284
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
285
|
-
final double density = (double) context.getResources().getDisplayMetrics().density;
|
|
286
|
-
|
|
287
|
-
final Point pt = new Point(
|
|
288
|
-
point.hasKey("x") ? (int)(point.getDouble("x") * density) : 0,
|
|
289
|
-
point.hasKey("y") ? (int)(point.getDouble("y") * density) : 0
|
|
290
|
-
);
|
|
291
|
-
|
|
292
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
293
|
-
uiManager.addUIBlock(new UIBlock()
|
|
294
|
-
{
|
|
295
|
-
@Override
|
|
296
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
297
|
-
{
|
|
298
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
299
|
-
if (view == null)
|
|
300
|
-
{
|
|
301
|
-
promise.reject("AirMapView not found");
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
if (view.map == null)
|
|
305
|
-
{
|
|
306
|
-
promise.reject("AirMapView.map is not valid");
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
LatLng coord = view.map.getProjection().fromScreenLocation(pt);
|
|
311
|
-
|
|
312
|
-
WritableMap coordJson = new WritableNativeMap();
|
|
313
|
-
coordJson.putDouble("latitude", coord.latitude);
|
|
314
|
-
coordJson.putDouble("longitude", coord.longitude);
|
|
315
|
-
|
|
316
|
-
promise.resolve(coordJson);
|
|
317
|
-
}
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
@ReactMethod
|
|
322
|
-
public void getMapBoundaries(final int tag, final Promise promise) {
|
|
323
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
324
|
-
|
|
325
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
326
|
-
uiManager.addUIBlock(new UIBlock()
|
|
327
|
-
{
|
|
328
|
-
@Override
|
|
329
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
330
|
-
{
|
|
331
|
-
AirMapView view = (AirMapView) nvhm.resolveView(tag);
|
|
332
|
-
if (view == null) {
|
|
333
|
-
promise.reject("AirMapView not found");
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
if (view.map == null) {
|
|
337
|
-
promise.reject("AirMapView.map is not valid");
|
|
338
|
-
return;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
double[][] boundaries = view.getMapBoundaries();
|
|
342
|
-
|
|
343
|
-
WritableMap coordinates = new WritableNativeMap();
|
|
344
|
-
WritableMap northEastHash = new WritableNativeMap();
|
|
345
|
-
WritableMap southWestHash = new WritableNativeMap();
|
|
346
|
-
|
|
347
|
-
northEastHash.putDouble("longitude", boundaries[0][0]);
|
|
348
|
-
northEastHash.putDouble("latitude", boundaries[0][1]);
|
|
349
|
-
southWestHash.putDouble("longitude", boundaries[1][0]);
|
|
350
|
-
southWestHash.putDouble("latitude", boundaries[1][1]);
|
|
351
|
-
|
|
352
|
-
coordinates.putMap("northEast", northEastHash);
|
|
353
|
-
coordinates.putMap("southWest", southWestHash);
|
|
354
|
-
|
|
355
|
-
promise.resolve(coordinates);
|
|
356
|
-
}
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
@ReactMethod
|
|
361
|
-
public void enableLatestRenderer(final Promise promise) {
|
|
362
|
-
final ReactApplicationContext context = getReactApplicationContext();
|
|
363
|
-
|
|
364
|
-
UIManagerModule uiManager = context.getNativeModule(UIManagerModule.class);
|
|
365
|
-
uiManager.addUIBlock(new UIBlock()
|
|
366
|
-
{
|
|
367
|
-
@Override
|
|
368
|
-
public void execute(NativeViewHierarchyManager nvhm)
|
|
369
|
-
{
|
|
370
|
-
MapsInitializer.initialize(context, MapsInitializer.Renderer.LATEST, new OnMapsSdkInitializedCallback() {
|
|
371
|
-
@Override
|
|
372
|
-
public void onMapsSdkInitialized(@NonNull MapsInitializer.Renderer renderer) {
|
|
373
|
-
Log.d("AirMapRenderer", renderer.toString());
|
|
374
|
-
promise.resolve(renderer.toString());
|
|
375
|
-
}
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
package com.airbnb.android.react.maps;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import android.graphics.Bitmap;
|
|
5
|
-
|
|
6
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
7
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
8
|
-
import com.google.android.gms.maps.GoogleMap;
|
|
9
|
-
import com.google.android.gms.maps.model.BitmapDescriptor;
|
|
10
|
-
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
|
11
|
-
import com.google.android.gms.maps.model.GroundOverlay;
|
|
12
|
-
import com.google.android.gms.maps.model.GroundOverlayOptions;
|
|
13
|
-
import com.google.android.gms.maps.model.LatLng;
|
|
14
|
-
import com.google.android.gms.maps.model.LatLngBounds;
|
|
15
|
-
|
|
16
|
-
import java.util.ArrayList;
|
|
17
|
-
|
|
18
|
-
public class AirMapOverlay extends AirMapFeature implements ImageReadable {
|
|
19
|
-
|
|
20
|
-
private GroundOverlayOptions groundOverlayOptions;
|
|
21
|
-
private GroundOverlay groundOverlay;
|
|
22
|
-
private LatLngBounds bounds;
|
|
23
|
-
private float bearing;
|
|
24
|
-
private BitmapDescriptor iconBitmapDescriptor;
|
|
25
|
-
private Bitmap iconBitmap;
|
|
26
|
-
private boolean tappable;
|
|
27
|
-
private float zIndex;
|
|
28
|
-
private float transparency;
|
|
29
|
-
|
|
30
|
-
private final ImageReader mImageReader;
|
|
31
|
-
private GoogleMap map;
|
|
32
|
-
|
|
33
|
-
public AirMapOverlay(Context context) {
|
|
34
|
-
super(context);
|
|
35
|
-
this.mImageReader = new ImageReader(context, getResources(), this);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public void setBounds(ReadableArray bounds) {
|
|
39
|
-
LatLng sw = new LatLng(bounds.getArray(0).getDouble(0), bounds.getArray(0).getDouble(1));
|
|
40
|
-
LatLng ne = new LatLng(bounds.getArray(1).getDouble(0), bounds.getArray(1).getDouble(1));
|
|
41
|
-
this.bounds = new LatLngBounds(sw, ne);
|
|
42
|
-
if (this.groundOverlay != null) {
|
|
43
|
-
this.groundOverlay.setPositionFromBounds(this.bounds);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public void setBearing(float bearing){
|
|
48
|
-
this.bearing = bearing;
|
|
49
|
-
if (this.groundOverlay != null) {
|
|
50
|
-
this.groundOverlay.setBearing(bearing);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public void setZIndex(float zIndex) {
|
|
55
|
-
this.zIndex = zIndex;
|
|
56
|
-
if (this.groundOverlay != null) {
|
|
57
|
-
this.groundOverlay.setZIndex(zIndex);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
public void setTransparency(float transparency) {
|
|
62
|
-
this.transparency = transparency;
|
|
63
|
-
if (groundOverlay != null) {
|
|
64
|
-
groundOverlay.setTransparency(transparency);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public void setImage(String uri) {
|
|
69
|
-
this.mImageReader.setImage(uri);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public void setTappable(boolean tapabble) {
|
|
73
|
-
this.tappable = tapabble;
|
|
74
|
-
if (groundOverlay != null) {
|
|
75
|
-
groundOverlay.setClickable(tappable);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
public GroundOverlayOptions getGroundOverlayOptions() {
|
|
81
|
-
if (this.groundOverlayOptions == null) {
|
|
82
|
-
this.groundOverlayOptions = createGroundOverlayOptions();
|
|
83
|
-
}
|
|
84
|
-
return this.groundOverlayOptions;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
private GroundOverlayOptions createGroundOverlayOptions() {
|
|
88
|
-
if (this.groundOverlayOptions != null) {
|
|
89
|
-
return this.groundOverlayOptions;
|
|
90
|
-
}
|
|
91
|
-
GroundOverlayOptions options = new GroundOverlayOptions();
|
|
92
|
-
if (this.iconBitmapDescriptor != null) {
|
|
93
|
-
options.image(iconBitmapDescriptor);
|
|
94
|
-
} else {
|
|
95
|
-
// add stub image to be able to instantiate the overlay
|
|
96
|
-
// and store a reference to it in MapView
|
|
97
|
-
options.image(BitmapDescriptorFactory.defaultMarker());
|
|
98
|
-
// hide overlay until real image gets added
|
|
99
|
-
options.visible(false);
|
|
100
|
-
}
|
|
101
|
-
options.positionFromBounds(bounds);
|
|
102
|
-
options.zIndex(zIndex);
|
|
103
|
-
options.bearing(bearing);
|
|
104
|
-
options.transparency(transparency);
|
|
105
|
-
return options;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@Override
|
|
109
|
-
public Object getFeature() {
|
|
110
|
-
return groundOverlay;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
@Override
|
|
114
|
-
public void addToMap(GoogleMap map) {
|
|
115
|
-
GroundOverlayOptions groundOverlayOptions = getGroundOverlayOptions();
|
|
116
|
-
if (groundOverlayOptions != null) {
|
|
117
|
-
this.groundOverlay = map.addGroundOverlay(groundOverlayOptions);
|
|
118
|
-
this.groundOverlay.setClickable(this.tappable);
|
|
119
|
-
} else {
|
|
120
|
-
this.map = map;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
@Override
|
|
125
|
-
public void removeFromMap(GoogleMap map) {
|
|
126
|
-
this.map = null;
|
|
127
|
-
if (this.groundOverlay != null) {
|
|
128
|
-
this.groundOverlay.remove();
|
|
129
|
-
this.groundOverlay = null;
|
|
130
|
-
this.groundOverlayOptions = null;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
@Override
|
|
135
|
-
public void setIconBitmap(Bitmap bitmap) {
|
|
136
|
-
this.iconBitmap = bitmap;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
@Override
|
|
140
|
-
public void setIconBitmapDescriptor(
|
|
141
|
-
BitmapDescriptor iconBitmapDescriptor) {
|
|
142
|
-
this.iconBitmapDescriptor = iconBitmapDescriptor;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
@Override
|
|
146
|
-
public void update() {
|
|
147
|
-
this.groundOverlay = getGroundOverlay();
|
|
148
|
-
if (this.groundOverlay != null) {
|
|
149
|
-
this.groundOverlay.setVisible(true);
|
|
150
|
-
this.groundOverlay.setImage(this.iconBitmapDescriptor);
|
|
151
|
-
this.groundOverlay.setTransparency(this.transparency);
|
|
152
|
-
this.groundOverlay.setClickable(this.tappable);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
private GroundOverlay getGroundOverlay() {
|
|
157
|
-
if (this.groundOverlay != null) {
|
|
158
|
-
return this.groundOverlay;
|
|
159
|
-
}
|
|
160
|
-
if (this.map == null) {
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
GroundOverlayOptions groundOverlayOptions = getGroundOverlayOptions();
|
|
164
|
-
if (groundOverlayOptions != null) {
|
|
165
|
-
return this.map.addGroundOverlay(groundOverlayOptions);
|
|
166
|
-
}
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
package com.airbnb.android.react.maps;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import android.os.Build;
|
|
5
|
-
import android.util.DisplayMetrics;
|
|
6
|
-
import android.view.WindowManager;
|
|
7
|
-
|
|
8
|
-
import androidx.annotation.Nullable;
|
|
9
|
-
|
|
10
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
12
|
-
import com.facebook.react.common.MapBuilder;
|
|
13
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
14
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
15
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
16
|
-
|
|
17
|
-
import java.util.Map;
|
|
18
|
-
|
|
19
|
-
public class AirMapOverlayManager extends ViewGroupManager<AirMapOverlay> {
|
|
20
|
-
private final DisplayMetrics metrics;
|
|
21
|
-
|
|
22
|
-
public AirMapOverlayManager(ReactApplicationContext reactContext) {
|
|
23
|
-
super();
|
|
24
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
|
25
|
-
metrics = new DisplayMetrics();
|
|
26
|
-
((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
|
|
27
|
-
.getDefaultDisplay()
|
|
28
|
-
.getRealMetrics(metrics);
|
|
29
|
-
} else {
|
|
30
|
-
metrics = reactContext.getResources().getDisplayMetrics();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@Override
|
|
35
|
-
public String getName() {
|
|
36
|
-
return "AIRMapOverlay";
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Override
|
|
40
|
-
public AirMapOverlay createViewInstance(ThemedReactContext context) {
|
|
41
|
-
return new AirMapOverlay(context);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@ReactProp(name = "bounds")
|
|
45
|
-
public void setBounds(AirMapOverlay view, ReadableArray bounds) {
|
|
46
|
-
view.setBounds(bounds);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@ReactProp(name = "bearing")
|
|
50
|
-
public void setBearing(AirMapOverlay view, float bearing){
|
|
51
|
-
view.setBearing(bearing);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@ReactProp(name = "zIndex", defaultFloat = 1.0f)
|
|
55
|
-
public void setZIndex(AirMapOverlay view, float zIndex) {
|
|
56
|
-
view.setZIndex(zIndex);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@ReactProp(name = "opacity", defaultFloat = 1.0f)
|
|
60
|
-
public void setOpacity(AirMapOverlay view, float opacity) {
|
|
61
|
-
view.setTransparency(1 - opacity);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@ReactProp(name = "image")
|
|
65
|
-
public void setImage(AirMapOverlay view, @Nullable String source) {
|
|
66
|
-
view.setImage(source);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@ReactProp(name = "tappable", defaultBoolean = false)
|
|
70
|
-
public void setTappable(AirMapOverlay view, boolean tapabble) {
|
|
71
|
-
view.setTappable(tapabble);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@Override
|
|
75
|
-
@Nullable
|
|
76
|
-
public Map getExportedCustomDirectEventTypeConstants() {
|
|
77
|
-
return MapBuilder.of(
|
|
78
|
-
"onPress", MapBuilder.of("registrationName", "onPress")
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
}
|