react-native-maps 0.31.1 → 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,4 +1,4 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
|
|
@@ -9,22 +9,23 @@ import com.google.android.gms.maps.model.TileOverlayOptions;
|
|
|
9
9
|
import com.google.android.gms.maps.model.TileProvider;
|
|
10
10
|
|
|
11
11
|
import java.io.ByteArrayOutputStream;
|
|
12
|
-
import java.io.File;
|
|
13
12
|
import java.io.FileInputStream;
|
|
14
13
|
import java.io.IOException;
|
|
15
14
|
import java.io.InputStream;
|
|
16
15
|
|
|
17
|
-
public class
|
|
16
|
+
public class MapLocalTile extends MapFeature {
|
|
18
17
|
|
|
19
18
|
class AIRMapLocalTileProvider implements TileProvider {
|
|
20
19
|
private static final int BUFFER_SIZE = 16 * 1024;
|
|
21
20
|
private int tileSize;
|
|
22
21
|
private String pathTemplate;
|
|
22
|
+
private final boolean useAssets;
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
public AIRMapLocalTileProvider(int tileSizet, String pathTemplate) {
|
|
25
|
+
public AIRMapLocalTileProvider(int tileSizet, String pathTemplate, boolean useAssets) {
|
|
26
26
|
this.tileSize = tileSizet;
|
|
27
27
|
this.pathTemplate = pathTemplate;
|
|
28
|
+
this.useAssets = useAssets;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
@Override
|
|
@@ -44,10 +45,10 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
44
45
|
private byte[] readTileImage(int x, int y, int zoom) {
|
|
45
46
|
InputStream in = null;
|
|
46
47
|
ByteArrayOutputStream buffer = null;
|
|
47
|
-
|
|
48
|
+
String tileFilename = getTileFilename(x, y, zoom);
|
|
48
49
|
|
|
49
50
|
try {
|
|
50
|
-
in = new FileInputStream(
|
|
51
|
+
in = useAssets ? getContext().getAssets().open(tileFilename) : new FileInputStream(tileFilename);
|
|
51
52
|
buffer = new ByteArrayOutputStream();
|
|
52
53
|
|
|
53
54
|
int nRead;
|
|
@@ -59,10 +60,7 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
59
60
|
buffer.flush();
|
|
60
61
|
|
|
61
62
|
return buffer.toByteArray();
|
|
62
|
-
} catch (IOException e) {
|
|
63
|
-
e.printStackTrace();
|
|
64
|
-
return null;
|
|
65
|
-
} catch (OutOfMemoryError e) {
|
|
63
|
+
} catch (IOException | OutOfMemoryError e) {
|
|
66
64
|
e.printStackTrace();
|
|
67
65
|
return null;
|
|
68
66
|
} finally {
|
|
@@ -82,13 +80,14 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
82
80
|
|
|
83
81
|
private TileOverlayOptions tileOverlayOptions;
|
|
84
82
|
private TileOverlay tileOverlay;
|
|
85
|
-
private
|
|
83
|
+
private MapLocalTile.AIRMapLocalTileProvider tileProvider;
|
|
86
84
|
|
|
87
85
|
private String pathTemplate;
|
|
88
86
|
private float tileSize;
|
|
89
87
|
private float zIndex;
|
|
88
|
+
private boolean useAssets;
|
|
90
89
|
|
|
91
|
-
public
|
|
90
|
+
public MapLocalTile(Context context) {
|
|
92
91
|
super(context);
|
|
93
92
|
}
|
|
94
93
|
|
|
@@ -116,6 +115,10 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
116
115
|
}
|
|
117
116
|
}
|
|
118
117
|
|
|
118
|
+
public void setUseAssets(boolean useAssets) {
|
|
119
|
+
this.useAssets = useAssets;
|
|
120
|
+
}
|
|
121
|
+
|
|
119
122
|
public TileOverlayOptions getTileOverlayOptions() {
|
|
120
123
|
if (tileOverlayOptions == null) {
|
|
121
124
|
tileOverlayOptions = createTileOverlayOptions();
|
|
@@ -126,7 +129,7 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
126
129
|
private TileOverlayOptions createTileOverlayOptions() {
|
|
127
130
|
TileOverlayOptions options = new TileOverlayOptions();
|
|
128
131
|
options.zIndex(zIndex);
|
|
129
|
-
this.tileProvider = new
|
|
132
|
+
this.tileProvider = new MapLocalTile.AIRMapLocalTileProvider((int)this.tileSize, this.pathTemplate, this.useAssets);
|
|
130
133
|
options.tileProvider(this.tileProvider);
|
|
131
134
|
return options;
|
|
132
135
|
}
|
|
@@ -137,12 +140,12 @@ public class AirMapLocalTile extends AirMapFeature {
|
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
@Override
|
|
140
|
-
public void addToMap(
|
|
141
|
-
this.tileOverlay = map.addTileOverlay(getTileOverlayOptions());
|
|
143
|
+
public void addToMap(Object map) {
|
|
144
|
+
this.tileOverlay = ((GoogleMap) map).addTileOverlay(getTileOverlayOptions());
|
|
142
145
|
}
|
|
143
146
|
|
|
144
147
|
@Override
|
|
145
|
-
public void removeFromMap(
|
|
148
|
+
public void removeFromMap(Object map) {
|
|
146
149
|
tileOverlay.remove();
|
|
147
150
|
}
|
|
148
151
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.util.DisplayMetrics;
|
|
5
|
+
import android.view.WindowManager;
|
|
6
|
+
|
|
7
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
8
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
9
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
10
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Created by zavadpe on 30/11/2017.
|
|
14
|
+
*/
|
|
15
|
+
public class MapLocalTileManager extends ViewGroupManager<MapLocalTile> {
|
|
16
|
+
|
|
17
|
+
public MapLocalTileManager(ReactApplicationContext reactContext) {
|
|
18
|
+
super();
|
|
19
|
+
DisplayMetrics metrics = new DisplayMetrics();
|
|
20
|
+
((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
|
|
21
|
+
.getDefaultDisplay()
|
|
22
|
+
.getRealMetrics(metrics);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@Override
|
|
26
|
+
public String getName() {
|
|
27
|
+
return "AIRMapLocalTile";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
public MapLocalTile createViewInstance(ThemedReactContext context) {
|
|
32
|
+
return new MapLocalTile(context);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@ReactProp(name = "pathTemplate")
|
|
36
|
+
public void setPathTemplate(MapLocalTile view, String pathTemplate) {
|
|
37
|
+
view.setPathTemplate(pathTemplate);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactProp(name = "tileSize", defaultFloat = 256f)
|
|
41
|
+
public void setTileSize(MapLocalTile view, float tileSize) {
|
|
42
|
+
view.setTileSize(tileSize);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@ReactProp(name = "zIndex", defaultFloat = -1.0f)
|
|
46
|
+
public void setZIndex(MapLocalTile view, float zIndex) {
|
|
47
|
+
view.setZIndex(zIndex);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@ReactProp(name = "useAssets", defaultBoolean = false)
|
|
51
|
+
public void setUseAssets(MapLocalTile view, boolean useAssets) {
|
|
52
|
+
view.setUseAssets(useAssets);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
|
+
|
|
3
|
+
import android.view.View;
|
|
4
|
+
|
|
5
|
+
import androidx.annotation.NonNull;
|
|
6
|
+
import androidx.annotation.Nullable;
|
|
7
|
+
|
|
8
|
+
import com.facebook.react.R;
|
|
9
|
+
import com.facebook.react.bridge.Arguments;
|
|
10
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
11
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
12
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
13
|
+
import com.facebook.react.bridge.WritableMap;
|
|
14
|
+
import com.facebook.react.common.MapBuilder;
|
|
15
|
+
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
16
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
17
|
+
import com.facebook.react.uimanager.ReactStylesDiffMap;
|
|
18
|
+
import com.facebook.react.uimanager.StateWrapper;
|
|
19
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
20
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
21
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
22
|
+
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
|
23
|
+
import com.google.android.gms.location.Priority;
|
|
24
|
+
import com.google.android.gms.maps.GoogleMap;
|
|
25
|
+
import com.google.android.gms.maps.GoogleMapOptions;
|
|
26
|
+
import com.google.android.gms.maps.MapsInitializer;
|
|
27
|
+
import com.google.android.gms.maps.model.CameraPosition;
|
|
28
|
+
import com.google.android.gms.maps.model.LatLng;
|
|
29
|
+
import com.google.android.gms.maps.model.LatLngBounds;
|
|
30
|
+
|
|
31
|
+
import java.util.Map;
|
|
32
|
+
|
|
33
|
+
public class MapManager extends ViewGroupManager<MapView> {
|
|
34
|
+
|
|
35
|
+
private static final String REACT_CLASS = "AIRMap";
|
|
36
|
+
|
|
37
|
+
private final Map<String, Integer> MAP_TYPES = MapBuilder.of(
|
|
38
|
+
"standard", GoogleMap.MAP_TYPE_NORMAL,
|
|
39
|
+
"satellite", GoogleMap.MAP_TYPE_SATELLITE,
|
|
40
|
+
"hybrid", GoogleMap.MAP_TYPE_HYBRID,
|
|
41
|
+
"terrain", GoogleMap.MAP_TYPE_TERRAIN,
|
|
42
|
+
"none", GoogleMap.MAP_TYPE_NONE
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
public static final Map<String, Integer> MY_LOCATION_PRIORITY = MapBuilder.of(
|
|
46
|
+
"balanced", Priority.PRIORITY_BALANCED_POWER_ACCURACY,
|
|
47
|
+
"high", Priority.PRIORITY_HIGH_ACCURACY,
|
|
48
|
+
"low", Priority.PRIORITY_LOW_POWER,
|
|
49
|
+
"passive", Priority.PRIORITY_PASSIVE
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
private final ReactApplicationContext appContext;
|
|
53
|
+
private MapMarkerManager markerManager;
|
|
54
|
+
|
|
55
|
+
protected GoogleMapOptions googleMapOptions;
|
|
56
|
+
|
|
57
|
+
protected MapsInitializer.Renderer renderer;
|
|
58
|
+
|
|
59
|
+
public MapManager(ReactApplicationContext context) {
|
|
60
|
+
this.appContext = context;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public MapMarkerManager getMarkerManager() {
|
|
64
|
+
return this.markerManager;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public void setMarkerManager(MapMarkerManager markerManager) {
|
|
68
|
+
this.markerManager = markerManager;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@Override
|
|
72
|
+
public String getName() {
|
|
73
|
+
return REACT_CLASS;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@Override
|
|
77
|
+
protected MapView createViewInstance(@NonNull ThemedReactContext context) {
|
|
78
|
+
return new MapView(context, this.appContext, this, googleMapOptions);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@Override
|
|
82
|
+
protected MapView createViewInstance(int reactTag, @NonNull ThemedReactContext reactContext, @Nullable ReactStylesDiffMap initialProps, @Nullable StateWrapper stateWrapper) {
|
|
83
|
+
this.googleMapOptions = new GoogleMapOptions();
|
|
84
|
+
if (initialProps != null) {
|
|
85
|
+
if (initialProps.getString("googleMapId") != null) {
|
|
86
|
+
googleMapOptions.mapId(initialProps.getString("googleMapId"));
|
|
87
|
+
}
|
|
88
|
+
if (initialProps.hasKey("liteMode")) {
|
|
89
|
+
googleMapOptions.liteMode(initialProps.getBoolean("liteMode", false));
|
|
90
|
+
}
|
|
91
|
+
if (initialProps.hasKey("initialCamera")) {
|
|
92
|
+
CameraPosition position = MapView.cameraPositionFromMap(initialProps.getMap("initialCamera"));
|
|
93
|
+
if (position != null) {
|
|
94
|
+
googleMapOptions.camera(position);
|
|
95
|
+
}
|
|
96
|
+
} else if (initialProps.hasKey("camera")) {
|
|
97
|
+
CameraPosition position = MapView.cameraPositionFromMap(initialProps.getMap("camera"));
|
|
98
|
+
if (position != null) {
|
|
99
|
+
googleMapOptions.camera(position);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (initialProps.hasKey("googleRenderer") && "LEGACY".equals(initialProps.getString("googleRenderer"))) {
|
|
103
|
+
renderer = MapsInitializer.Renderer.LEGACY;
|
|
104
|
+
} else {
|
|
105
|
+
renderer = MapsInitializer.Renderer.LATEST;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return super.createViewInstance(reactTag, reactContext, initialProps, stateWrapper);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private void emitMapError(ThemedReactContext context, String message, String type) {
|
|
112
|
+
WritableMap error = Arguments.createMap();
|
|
113
|
+
error.putString("message", message);
|
|
114
|
+
error.putString("type", type);
|
|
115
|
+
|
|
116
|
+
context
|
|
117
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
|
|
118
|
+
.emit("onError", error);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@ReactProp(name = "region")
|
|
122
|
+
public void setRegion(MapView view, ReadableMap region) {
|
|
123
|
+
view.setRegion(region);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@ReactProp(name = "googleRenderer")
|
|
127
|
+
public void setGoogleRenderer(MapView view, @Nullable String googleRenderer) {
|
|
128
|
+
// do nothing, passed as part of the InitialProps
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@ReactProp(name = "liteMode", defaultBoolean = false)
|
|
132
|
+
public void setLiteMode(MapView view, boolean liteMode) {
|
|
133
|
+
googleMapOptions.liteMode(liteMode);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@ReactProp(name = "googleMapId")
|
|
137
|
+
public void setGoogleMapId(MapView view, @Nullable String googleMapId) {
|
|
138
|
+
if (googleMapId != null) {
|
|
139
|
+
googleMapOptions.mapId(googleMapId);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@ReactProp(name = "initialRegion")
|
|
144
|
+
public void setInitialRegion(MapView view, ReadableMap initialRegion) {
|
|
145
|
+
view.setInitialRegion(initialRegion);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@ReactProp(name = "camera")
|
|
149
|
+
public void setCamera(MapView view, ReadableMap camera) {
|
|
150
|
+
view.setCamera(camera);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@ReactProp(name = "initialCamera")
|
|
154
|
+
public void setInitialCamera(MapView view, ReadableMap initialCamera) {
|
|
155
|
+
view.setInitialCamera(initialCamera);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@ReactProp(name = "mapType")
|
|
159
|
+
public void setMapType(MapView view, @Nullable String mapType) {
|
|
160
|
+
int typeId = MAP_TYPES.get(mapType);
|
|
161
|
+
view.map.setMapType(typeId);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
@ReactProp(name = "customMapStyleString")
|
|
165
|
+
public void setMapStyle(MapView view, @Nullable String customMapStyleString) {
|
|
166
|
+
view.setMapStyle(customMapStyleString);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
@ReactProp(name = "mapPadding")
|
|
170
|
+
public void setMapPadding(MapView view, @Nullable ReadableMap padding) {
|
|
171
|
+
int left = 0;
|
|
172
|
+
int top = 0;
|
|
173
|
+
int right = 0;
|
|
174
|
+
int bottom = 0;
|
|
175
|
+
double density = (double) view.getResources().getDisplayMetrics().density;
|
|
176
|
+
|
|
177
|
+
if (padding != null) {
|
|
178
|
+
if (padding.hasKey("left")) {
|
|
179
|
+
left = (int) (padding.getDouble("left") * density);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (padding.hasKey("top")) {
|
|
183
|
+
top = (int) (padding.getDouble("top") * density);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (padding.hasKey("right")) {
|
|
187
|
+
right = (int) (padding.getDouble("right") * density);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (padding.hasKey("bottom")) {
|
|
191
|
+
bottom = (int) (padding.getDouble("bottom") * density);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
view.applyBaseMapPadding(left, top, right, bottom);
|
|
196
|
+
view.map.setPadding(left, top, right, bottom);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@ReactProp(name = "showsUserLocation", defaultBoolean = false)
|
|
200
|
+
public void setShowsUserLocation(MapView view, boolean showUserLocation) {
|
|
201
|
+
view.setShowsUserLocation(showUserLocation);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
@ReactProp(name = "userLocationPriority")
|
|
205
|
+
public void setUserLocationPriority(MapView view, @Nullable String accuracy) {
|
|
206
|
+
view.setUserLocationPriority(MY_LOCATION_PRIORITY.get(accuracy));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@ReactProp(name = "userLocationUpdateInterval", defaultInt = 5000)
|
|
210
|
+
public void setUserLocationUpdateInterval(MapView view, int updateInterval) {
|
|
211
|
+
view.setUserLocationUpdateInterval(updateInterval);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@ReactProp(name = "userLocationFastestInterval", defaultInt = 5000)
|
|
215
|
+
public void setUserLocationFastestInterval(MapView view, int fastestInterval) {
|
|
216
|
+
view.setUserLocationFastestInterval(fastestInterval);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
@ReactProp(name = "showsMyLocationButton", defaultBoolean = true)
|
|
220
|
+
public void setShowsMyLocationButton(MapView view, boolean showMyLocationButton) {
|
|
221
|
+
view.setShowsMyLocationButton(showMyLocationButton);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@ReactProp(name = "toolbarEnabled", defaultBoolean = true)
|
|
225
|
+
public void setToolbarEnabled(MapView view, boolean toolbarEnabled) {
|
|
226
|
+
view.setToolbarEnabled(toolbarEnabled);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// This is a private prop to improve performance of panDrag by disabling it when the callback
|
|
230
|
+
// is not set
|
|
231
|
+
@ReactProp(name = "handlePanDrag", defaultBoolean = false)
|
|
232
|
+
public void setHandlePanDrag(MapView view, boolean handlePanDrag) {
|
|
233
|
+
view.setHandlePanDrag(handlePanDrag);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
@ReactProp(name = "showsTraffic", defaultBoolean = false)
|
|
237
|
+
public void setShowTraffic(MapView view, boolean showTraffic) {
|
|
238
|
+
view.map.setTrafficEnabled(showTraffic);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
@ReactProp(name = "showsBuildings", defaultBoolean = false)
|
|
242
|
+
public void setShowBuildings(MapView view, boolean showBuildings) {
|
|
243
|
+
view.setShowBuildings(showBuildings);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@ReactProp(name = "showsIndoors", defaultBoolean = false)
|
|
247
|
+
public void setShowIndoors(MapView view, boolean showIndoors) {
|
|
248
|
+
view.setShowIndoors(showIndoors);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
@ReactProp(name = "showsIndoorLevelPicker", defaultBoolean = false)
|
|
252
|
+
public void setShowsIndoorLevelPicker(MapView view, boolean showsIndoorLevelPicker) {
|
|
253
|
+
view.setShowsIndoorLevelPicker(showsIndoorLevelPicker);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
@ReactProp(name = "showsCompass", defaultBoolean = false)
|
|
257
|
+
public void setShowsCompass(MapView view, boolean showsCompass) {
|
|
258
|
+
view.setShowsCompass(showsCompass);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
@ReactProp(name = "scrollEnabled", defaultBoolean = false)
|
|
262
|
+
public void setScrollEnabled(MapView view, boolean scrollEnabled) {
|
|
263
|
+
view.setScrollEnabled(scrollEnabled);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@ReactProp(name = "zoomEnabled", defaultBoolean = false)
|
|
267
|
+
public void setZoomEnabled(MapView view, boolean zoomEnabled) {
|
|
268
|
+
view.setZoomEnabled(zoomEnabled);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@ReactProp(name = "zoomControlEnabled", defaultBoolean = true)
|
|
272
|
+
public void setZoomControlEnabled(MapView view, boolean zoomControlEnabled) {
|
|
273
|
+
view.setZoomControlEnabled(zoomControlEnabled);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
@ReactProp(name = "rotateEnabled", defaultBoolean = false)
|
|
277
|
+
public void setRotateEnabled(MapView view, boolean rotateEnabled) {
|
|
278
|
+
view.setRotateEnabled(rotateEnabled);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
@ReactProp(name = "scrollDuringRotateOrZoomEnabled", defaultBoolean = true)
|
|
282
|
+
public void setScrollDuringRotateOrZoomEnabled(MapView view, boolean scrollDuringRotateOrZoomEnabled) {
|
|
283
|
+
view.setScrollDuringRotateOrZoomEnabled(scrollDuringRotateOrZoomEnabled);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
@ReactProp(name = "cacheEnabled", defaultBoolean = false)
|
|
287
|
+
public void setCacheEnabled(MapView view, boolean cacheEnabled) {
|
|
288
|
+
view.setCacheEnabled(cacheEnabled);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
@ReactProp(name = "poiClickEnabled", defaultBoolean = true)
|
|
292
|
+
public void setPoiClickEnabled(MapView view, boolean poiClickEnabled) {
|
|
293
|
+
view.setPoiClickEnabled(poiClickEnabled);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
@ReactProp(name = "loadingEnabled", defaultBoolean = false)
|
|
297
|
+
public void setLoadingEnabled(MapView view, boolean loadingEnabled) {
|
|
298
|
+
view.setLoadingEnabled(loadingEnabled);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
@ReactProp(name = "moveOnMarkerPress", defaultBoolean = true)
|
|
302
|
+
public void setMoveOnMarkerPress(MapView view, boolean moveOnPress) {
|
|
303
|
+
view.setMoveOnMarkerPress(moveOnPress);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
@ReactProp(name = "loadingBackgroundColor", customType = "Color")
|
|
307
|
+
public void setLoadingBackgroundColor(MapView view, @Nullable Integer loadingBackgroundColor) {
|
|
308
|
+
view.setLoadingBackgroundColor(loadingBackgroundColor);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@ReactProp(name = "loadingIndicatorColor", customType = "Color")
|
|
312
|
+
public void setLoadingIndicatorColor(MapView view, @Nullable Integer loadingIndicatorColor) {
|
|
313
|
+
view.setLoadingIndicatorColor(loadingIndicatorColor);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
@ReactProp(name = "pitchEnabled", defaultBoolean = false)
|
|
317
|
+
public void setPitchEnabled(MapView view, boolean pitchEnabled) {
|
|
318
|
+
view.setPitchEnabled(pitchEnabled);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
@ReactProp(name = "minZoomLevel")
|
|
322
|
+
public void setMinZoomLevel(MapView view, float minZoomLevel) {
|
|
323
|
+
view.setMinZoomLevel(minZoomLevel);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@ReactProp(name = "maxZoomLevel")
|
|
327
|
+
public void setMaxZoomLevel(MapView view, float maxZoomLevel) {
|
|
328
|
+
view.setMaxZoomLevel(maxZoomLevel);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
@ReactProp(name = "kmlSrc")
|
|
332
|
+
public void setKmlSrc(MapView view, String kmlUrl) {
|
|
333
|
+
if (kmlUrl != null) {
|
|
334
|
+
view.setKmlSrc(kmlUrl);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
@ReactProp(name = "accessibilityLabel")
|
|
339
|
+
public void setAccessibilityLabel(MapView view, @Nullable String accessibilityLabel) {
|
|
340
|
+
view.setTag(R.id.accessibility_label, accessibilityLabel);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
@Override
|
|
344
|
+
public void receiveCommand(@NonNull MapView view, String commandId, @Nullable ReadableArray args) {
|
|
345
|
+
int duration;
|
|
346
|
+
double lat;
|
|
347
|
+
double lng;
|
|
348
|
+
double lngDelta;
|
|
349
|
+
double latDelta;
|
|
350
|
+
ReadableMap region;
|
|
351
|
+
ReadableMap camera;
|
|
352
|
+
|
|
353
|
+
switch (commandId) {
|
|
354
|
+
case "setCamera":
|
|
355
|
+
if (args == null) {
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
camera = args.getMap(0);
|
|
359
|
+
view.animateToCamera(camera, 0);
|
|
360
|
+
break;
|
|
361
|
+
|
|
362
|
+
case "animateCamera":
|
|
363
|
+
if (args == null) {
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
camera = args.getMap(0);
|
|
367
|
+
duration = args.getInt(1);
|
|
368
|
+
view.animateToCamera(camera, duration);
|
|
369
|
+
break;
|
|
370
|
+
|
|
371
|
+
case "animateToRegion":
|
|
372
|
+
if (args == null) {
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
region = args.getMap(0);
|
|
376
|
+
duration = args.getInt(1);
|
|
377
|
+
lng = region.getDouble("longitude");
|
|
378
|
+
lat = region.getDouble("latitude");
|
|
379
|
+
lngDelta = region.getDouble("longitudeDelta");
|
|
380
|
+
latDelta = region.getDouble("latitudeDelta");
|
|
381
|
+
LatLngBounds bounds = new LatLngBounds(
|
|
382
|
+
new LatLng(lat - latDelta / 2, lng - lngDelta / 2), // southwest
|
|
383
|
+
new LatLng(lat + latDelta / 2, lng + lngDelta / 2) // northeast
|
|
384
|
+
);
|
|
385
|
+
view.animateToRegion(bounds, duration);
|
|
386
|
+
break;
|
|
387
|
+
|
|
388
|
+
case "fitToElements":
|
|
389
|
+
if (args == null) {
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
view.fitToElements(args.getMap(0), args.getBoolean(1));
|
|
393
|
+
break;
|
|
394
|
+
|
|
395
|
+
case "fitToSuppliedMarkers":
|
|
396
|
+
if (args == null) {
|
|
397
|
+
break;
|
|
398
|
+
}
|
|
399
|
+
view.fitToSuppliedMarkers(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
400
|
+
break;
|
|
401
|
+
|
|
402
|
+
case "fitToCoordinates":
|
|
403
|
+
if (args == null) {
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
view.fitToCoordinates(args.getArray(0), args.getMap(1), args.getBoolean(2));
|
|
407
|
+
break;
|
|
408
|
+
|
|
409
|
+
case "setMapBoundaries":
|
|
410
|
+
if (args == null) {
|
|
411
|
+
break;
|
|
412
|
+
}
|
|
413
|
+
view.setMapBoundaries(args.getMap(0), args.getMap(1));
|
|
414
|
+
break;
|
|
415
|
+
|
|
416
|
+
case "setIndoorActiveLevelIndex":
|
|
417
|
+
if (args == null) {
|
|
418
|
+
break;
|
|
419
|
+
}
|
|
420
|
+
view.setIndoorActiveLevelIndex(args.getInt(0));
|
|
421
|
+
break;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
@Override
|
|
426
|
+
@Nullable
|
|
427
|
+
public Map getExportedCustomDirectEventTypeConstants() {
|
|
428
|
+
Map<String, Map<String, String>> map = MapBuilder.of(
|
|
429
|
+
"onMapReady", MapBuilder.of("registrationName", "onMapReady"),
|
|
430
|
+
"onPress", MapBuilder.of("registrationName", "onPress"),
|
|
431
|
+
"onLongPress", MapBuilder.of("registrationName", "onLongPress"),
|
|
432
|
+
"onMarkerPress", MapBuilder.of("registrationName", "onMarkerPress"),
|
|
433
|
+
"onCalloutPress", MapBuilder.of("registrationName", "onCalloutPress")
|
|
434
|
+
);
|
|
435
|
+
|
|
436
|
+
map.putAll(MapBuilder.of(
|
|
437
|
+
"onUserLocationChange", MapBuilder.of("registrationName", "onUserLocationChange"),
|
|
438
|
+
"onMarkerDragStart", MapBuilder.of("registrationName", "onMarkerDragStart"),
|
|
439
|
+
"onMarkerDrag", MapBuilder.of("registrationName", "onMarkerDrag"),
|
|
440
|
+
"onMarkerDragEnd", MapBuilder.of("registrationName", "onMarkerDragEnd"),
|
|
441
|
+
"onPanDrag", MapBuilder.of("registrationName", "onPanDrag"),
|
|
442
|
+
"onKmlReady", MapBuilder.of("registrationName", "onKmlReady"),
|
|
443
|
+
"onPoiClick", MapBuilder.of("registrationName", "onPoiClick")
|
|
444
|
+
));
|
|
445
|
+
|
|
446
|
+
map.putAll(MapBuilder.of(
|
|
447
|
+
"onIndoorLevelActivated", MapBuilder.of("registrationName", "onIndoorLevelActivated"),
|
|
448
|
+
"onIndoorBuildingFocused", MapBuilder.of("registrationName", "onIndoorBuildingFocused"),
|
|
449
|
+
"onDoublePress", MapBuilder.of("registrationName", "onDoublePress"),
|
|
450
|
+
"onMapLoaded", MapBuilder.of("registrationName", "onMapLoaded"),
|
|
451
|
+
"onMarkerSelect", MapBuilder.of("registrationName", "onMarkerSelect"),
|
|
452
|
+
"onMarkerDeselect", MapBuilder.of("registrationName", "onMarkerDeselect"),
|
|
453
|
+
"onRegionChangeStart", MapBuilder.of("registrationName", "onRegionChangeStart")
|
|
454
|
+
));
|
|
455
|
+
|
|
456
|
+
return map;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
@Override
|
|
460
|
+
public LayoutShadowNode createShadowNodeInstance() {
|
|
461
|
+
// A custom shadow node is needed in order to pass back the width/height of the map to the
|
|
462
|
+
// view manager so that it can start applying camera moves with bounds.
|
|
463
|
+
return new SizeReportingShadowNode();
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
@Override
|
|
467
|
+
public void addView(MapView parent, View child, int index) {
|
|
468
|
+
parent.addFeature(child, index);
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
@Override
|
|
472
|
+
public int getChildCount(MapView view) {
|
|
473
|
+
return view.getFeatureCount();
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
@Override
|
|
477
|
+
public View getChildAt(MapView view, int index) {
|
|
478
|
+
return view.getFeatureAt(index);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@Override
|
|
482
|
+
public void removeViewAt(MapView parent, int index) {
|
|
483
|
+
parent.removeFeatureAt(index);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
@Override
|
|
487
|
+
public void updateExtraData(MapView view, Object extraData) {
|
|
488
|
+
view.updateExtraData(extraData);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
void pushEvent(ThemedReactContext context, View view, String name, WritableMap data) {
|
|
492
|
+
context
|
|
493
|
+
.getReactApplicationContext()
|
|
494
|
+
.getJSModule(RCTEventEmitter.class)
|
|
495
|
+
.receiveEvent(view.getId(), name, data);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
@Override
|
|
499
|
+
public void onDropViewInstance(MapView view) {
|
|
500
|
+
view.doDestroy();
|
|
501
|
+
super.onDropViewInstance(view);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
}
|