react-native-maps 0.31.0 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +89 -33
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradlew +251 -0
- package/android/gradlew.bat +94 -0
- package/android/src/main/AndroidManifest.xml +1 -5
- package/android/src/main/RCTAppDependencyProvider.h +25 -0
- package/android/src/main/RCTAppDependencyProvider.mm +55 -0
- package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
- package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
- package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
- package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
- package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/CalloutManager.java +77 -0
- package/android/src/main/java/com/rnmaps/fabric/CircleManager.java +94 -0
- package/android/src/main/java/com/rnmaps/fabric/JSONUtil.java +86 -0
- package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +623 -0
- package/android/src/main/java/com/rnmaps/fabric/MarkerManager.java +258 -0
- package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +284 -0
- package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +101 -0
- package/android/src/main/java/com/rnmaps/fabric/PolygonManager.java +89 -0
- package/android/src/main/java/com/rnmaps/fabric/PolylineManager.java +121 -0
- package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
- package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnCalloutPressEvent.java +25 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDoublePressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorBuildingFocusedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnIndoorLevelActivatedEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnKmlReadyEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnLongPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapLoadedEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMapReadyEvent.java +29 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDeselectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEndEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerDragStartEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerPressEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnMarkerSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPanDragEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPoiClickEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnPressEvent.java +27 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeCompleteEvent.java +30 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeEvent.java +48 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnRegionChangeStartEvent.java +33 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnSelectEvent.java +28 -0
- package/android/src/main/java/com/rnmaps/fabric/event/OnUserLocationChangeEvent.java +28 -0
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FileUtil.java +3 -6
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/FusedLocationSource.java +5 -2
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReadable.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageReader.java +5 -7
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ImageUtil.java +1 -2
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/LatLngBoundsUtils.java +1 -1
- package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +98 -0
- package/android/src/main/java/com/rnmaps/maps/MapCallout.java +41 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCalloutManager.java → rnmaps/maps/MapCalloutManager.java} +6 -6
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircle.java → rnmaps/maps/MapCircle.java} +34 -8
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapCircleManager.java → rnmaps/maps/MapCircleManager.java} +15 -20
- package/android/src/main/java/com/rnmaps/maps/MapFeature.java +17 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolyline.java → rnmaps/maps/MapGradientPolyline.java} +9 -12
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapGradientPolylineManager.java → rnmaps/maps/MapGradientPolylineManager.java} +13 -18
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmap.java → rnmaps/maps/MapHeatmap.java} +8 -9
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapHeatmapManager.java → rnmaps/maps/MapHeatmapManager.java} +8 -8
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapLocalTile.java → rnmaps/maps/MapLocalTile.java} +19 -16
- package/android/src/main/java/com/rnmaps/maps/MapLocalTileManager.java +54 -0
- package/android/src/main/java/com/rnmaps/maps/MapManager.java +504 -0
- package/android/src/main/java/com/rnmaps/maps/MapMarker.java +706 -0
- package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +368 -0
- package/android/src/main/java/com/rnmaps/maps/MapModule.java +283 -0
- package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +262 -0
- package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +97 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygon.java → rnmaps/maps/MapPolygon.java} +73 -9
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolygonManager.java → rnmaps/maps/MapPolygonManager.java} +22 -22
- package/android/src/main/java/com/rnmaps/maps/MapPolyline.java +230 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapPolylineManager.java → rnmaps/maps/MapPolylineManager.java} +18 -38
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileProvider.java → rnmaps/maps/MapTileProvider.java} +55 -76
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapTileWorker.java → rnmaps/maps/MapTileWorker.java} +7 -14
- package/android/src/main/java/com/rnmaps/maps/MapUIBlock.java +64 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapUrlTile.java → rnmaps/maps/MapUrlTile.java} +29 -29
- package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +87 -0
- package/android/src/main/java/com/rnmaps/maps/MapView.java +1844 -0
- package/android/src/main/java/com/{airbnb/android/react/maps/AirMapWMSTile.java → rnmaps/maps/MapWMSTile.java} +11 -17
- package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +81 -0
- package/android/src/main/java/com/rnmaps/maps/MapsPackage.java +45 -0
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/RegionChangeEvent.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/SizeReportingShadowNode.java +1 -1
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewAttacherGroup.java +2 -7
- package/android/src/main/java/com/{airbnb/android/react → rnmaps}/maps/ViewChangesTracker.java +12 -11
- package/android/src/main/jni/CMakeLists.txt +36 -0
- package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
- package/android/src/main/jni/RNMapsSpecs.h +31 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
- package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
- package/app.plugin.js +1 -0
- package/ios/AirGoogleMaps/AIRGMSMarker.h +2 -0
- package/ios/AirGoogleMaps/AIRGoogleMap.h +22 -12
- package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +407 -130
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.h +2 -3
- package/ios/AirGoogleMaps/AIRGoogleMapCircle.m +42 -3
- package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.h +13 -0
- package/ios/AirGoogleMaps/AIRGoogleMapCoordinate.m +10 -0
- package/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapManager.h +11 -0
- package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.h +4 -0
- package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +369 -237
- package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +3 -2
- package/ios/AirGoogleMaps/AIRGoogleMapOverlay.h +0 -1
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.h +7 -6
- package/ios/AirGoogleMaps/AIRGoogleMapPolygon.m +62 -5
- package/ios/AirGoogleMaps/AIRGoogleMapPolygonManager.m +3 -3
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.h +4 -3
- package/ios/AirGoogleMaps/AIRGoogleMapPolyline.m +9 -9
- package/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m +2 -2
- package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.h +1 -1
- package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +4 -4
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.h +3 -0
- package/ios/AirGoogleMaps/RCTConvert+GMSMapViewType.m +18 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +29 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +678 -0
- package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +40 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.h +26 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +226 -0
- package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +26 -0
- package/ios/AirGoogleMaps/Resources/GoogleMapsPrivacy.bundle/PrivacyInfo.xcprivacy +110 -0
- package/ios/AirMaps/AIRMap.h +19 -14
- package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +333 -120
- package/ios/AirMaps/AIRMapCircle.m +1 -53
- package/ios/AirMaps/AIRMapCoordinate.m +2 -4
- package/ios/AirMaps/AIRMapManager.m +64 -218
- package/ios/AirMaps/AIRMapMarker.h +5 -0
- package/ios/AirMaps/AIRMapMarker.m +180 -69
- package/ios/AirMaps/AIRMapMarkerManager.m +3 -0
- package/ios/AirMaps/AIRMapOverlay.m +2 -2
- package/ios/AirMaps/AIRMapPolygon.m +0 -52
- package/ios/AirMaps/AIRMapPolyline.m +3 -2
- package/ios/AirMaps/AIRMapWMSTile.m +8 -8
- package/ios/AirMaps/Callout/SMCalloutView.m +1 -1
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
- package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +52 -0
- package/ios/AirMaps/RCTComponentData+Maps.h +13 -0
- package/ios/AirMaps/RCTComponentData+Maps.m +55 -0
- package/ios/AirMaps/RCTConvert+AirMap.h +6 -1
- package/ios/AirMaps/RCTConvert+AirMap.m +18 -0
- package/ios/AirMaps/RNMapsAirModule.h +15 -0
- package/ios/AirMaps/RNMapsAirModule.mm +164 -0
- package/ios/AirMaps/RNMapsDefines.h +1 -0
- package/ios/AirMaps/RNMapsMapView.h +27 -0
- package/ios/AirMaps/RNMapsMapView.mm +577 -0
- package/ios/AirMaps/RNMapsMapViewManager.mm +42 -0
- package/ios/AirMaps/RNMapsMarkerView.h +24 -0
- package/ios/AirMaps/RNMapsMarkerView.mm +439 -0
- package/ios/AirMaps/RNMapsMarkerViewManager.mm +28 -0
- package/ios/AirMaps/UIView+AirMap.h +11 -0
- package/ios/AirMaps/UIView+AirMap.m +20 -0
- package/ios/AirMaps/module.modulemap +6 -0
- package/ios/AirMaps.xcodeproj/project.pbxproj +44 -4
- package/ios/PrivacyInfo.xcprivacy +37 -0
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
- package/ios/generated/RNMapsAirModuleDelegate.h +24 -0
- package/ios/generated/RNMapsHostVewDelegate.h +17 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
- package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
- package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
- package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
- package/ios/generated/RNMapsSpecs/Props.h +1224 -0
- package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
- package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
- package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
- package/ios/generated/RNMapsSpecs/States.cpp +16 -0
- package/ios/generated/RNMapsSpecs/States.h +113 -0
- package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
- package/ios/generated/RNMapsSpecsJSI.h +268 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/ios/generated/module.modulemap +15 -0
- package/package.json +57 -34
- package/plugin/build/android.js +58 -0
- package/plugin/build/index.js +10 -0
- package/plugin/build/ios.js +176 -0
- package/plugin/build/types.js +2 -0
- package/react-native-maps.podspec +114 -11
- package/react-native.config.js +15 -0
- package/src/{AnimatedRegion.js → AnimatedRegion.ts} +26 -21
- package/src/Geojson.tsx +541 -0
- package/src/MapCallout.tsx +77 -0
- package/src/MapCalloutSubview.tsx +64 -0
- package/src/MapCircle.tsx +162 -0
- package/src/MapHeatmap.tsx +125 -0
- package/src/MapLocalTile.tsx +60 -0
- package/src/MapMarker.tsx +531 -0
- package/src/MapMarkerNativeComponent.ts +51 -0
- package/src/MapOverlay.tsx +178 -0
- package/src/MapPolygon.tsx +188 -0
- package/src/MapPolygon.types.ts +25 -0
- package/src/MapPolyline.tsx +215 -0
- package/src/MapUrlTile.tsx +169 -0
- package/src/MapView.tsx +1235 -0
- package/src/MapView.types.ts +212 -0
- package/src/MapView.web.ts +2 -0
- package/src/MapViewNativeComponent.ts +86 -0
- package/src/MapWMSTile.tsx +148 -0
- package/src/ProviderConstants.ts +2 -0
- package/src/createFabricMap.tsx +253 -0
- package/src/decorateMapComponent.ts +230 -0
- package/src/fixImageProp.ts +17 -0
- package/src/index.ts +52 -0
- package/src/sharedTypes.ts +101 -0
- package/src/sharedTypesInternal.ts +1 -0
- package/src/specs/NativeAirMapsModule.ts +36 -0
- package/src/specs/NativeComponentCallout.ts +63 -0
- package/src/specs/NativeComponentCircle.ts +93 -0
- package/src/specs/NativeComponentGoogleMapView.ts +922 -0
- package/src/specs/NativeComponentGooglePolygon.ts +94 -0
- package/src/specs/NativeComponentMapView.ts +1100 -0
- package/src/specs/NativeComponentMarker.ts +326 -0
- package/src/specs/NativeComponentOverlay.ts +98 -0
- package/src/specs/NativeComponentPolyline.ts +124 -0
- package/src/specs/NativeComponentUrlTile.ts +128 -0
- package/src/specs/NativeComponentWMSTile.ts +107 -0
- package/LICENSE +0 -21
- package/README.md +0 -652
- package/android/src/main/assets/ula.kml +0 -1214
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapCallout.java +0 -23
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapFeature.java +0 -18
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapLiteManager.java +0 -20
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapLocalTileManager.java +0 -56
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +0 -500
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarker.java +0 -630
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapMarkerManager.java +0 -370
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapModule.java +0 -380
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlay.java +0 -169
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapOverlayManager.java +0 -81
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapPolyline.java +0 -162
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapUrlTileManager.java +0 -97
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapView.java +0 -1384
- package/android/src/main/java/com/airbnb/android/react/maps/AirMapWMSTileManager.java +0 -87
- package/android/src/main/java/com/airbnb/android/react/maps/MapsPackage.java +0 -65
- package/index.d.ts +0 -637
- package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -690
- package/ios/User.xcconfig +0 -0
- package/react-native-google-maps.podspec +0 -22
- package/src/Geojson.js +0 -334
- package/src/MapCallout.js +0 -51
- package/src/MapCalloutSubview.js +0 -44
- package/src/MapCircle.js +0 -150
- package/src/MapHeatmap.js +0 -99
- package/src/MapLocalTile.js +0 -52
- package/src/MapMarker.js +0 -377
- package/src/MapOverlay.js +0 -86
- package/src/MapPolygon.js +0 -202
- package/src/MapPolyline.js +0 -168
- package/src/MapUrlTile.js +0 -131
- package/src/MapView.js +0 -1160
- package/src/MapView.web.js +0 -1
- package/src/MapWMSTile.js +0 -122
- package/src/ProviderConstants.js +0 -2
- package/src/decorateMapComponent.js +0 -112
- package/src/index.js +0 -31
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.graphics.Bitmap;
|
|
5
|
+
import android.net.Uri;
|
|
6
|
+
import android.os.Handler;
|
|
7
|
+
import android.os.Looper;
|
|
8
|
+
|
|
9
|
+
import com.facebook.common.references.CloseableReference;
|
|
10
|
+
import com.facebook.datasource.BaseDataSubscriber;
|
|
11
|
+
import com.facebook.datasource.DataSource;
|
|
12
|
+
import com.facebook.datasource.DataSubscriber;
|
|
13
|
+
import com.facebook.drawee.backends.pipeline.Fresco;
|
|
14
|
+
import com.facebook.drawee.drawable.ScalingUtils;
|
|
15
|
+
import com.facebook.drawee.generic.GenericDraweeHierarchy;
|
|
16
|
+
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
|
|
17
|
+
import com.facebook.imagepipeline.core.ImagePipeline;
|
|
18
|
+
import com.facebook.imagepipeline.image.CloseableBitmap;
|
|
19
|
+
import com.facebook.imagepipeline.image.CloseableImage;
|
|
20
|
+
import com.facebook.imagepipeline.request.ImageRequest;
|
|
21
|
+
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
|
22
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
23
|
+
import com.facebook.react.common.MapBuilder;
|
|
24
|
+
import com.google.android.gms.common.images.ImageManager;
|
|
25
|
+
import com.google.android.gms.maps.model.BitmapDescriptor;
|
|
26
|
+
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
|
27
|
+
import com.google.android.gms.maps.model.GroundOverlay;
|
|
28
|
+
import com.google.android.gms.maps.model.GroundOverlayOptions;
|
|
29
|
+
import com.google.android.gms.maps.model.LatLng;
|
|
30
|
+
import com.google.android.gms.maps.model.LatLngBounds;
|
|
31
|
+
import com.google.maps.android.collections.GroundOverlayManager;
|
|
32
|
+
import com.rnmaps.fabric.event.OnPressEvent;
|
|
33
|
+
|
|
34
|
+
import java.util.Map;
|
|
35
|
+
import java.util.concurrent.Executors;
|
|
36
|
+
|
|
37
|
+
public class MapOverlay extends MapFeature {
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
private String imageUri;
|
|
41
|
+
|
|
42
|
+
private GroundOverlayOptions groundOverlayOptions;
|
|
43
|
+
private GroundOverlay groundOverlay;
|
|
44
|
+
private LatLngBounds bounds;
|
|
45
|
+
private float bearing;
|
|
46
|
+
private BitmapDescriptor bitmapDescriptor;
|
|
47
|
+
private boolean tappable;
|
|
48
|
+
private float zIndex;
|
|
49
|
+
private float transparency;
|
|
50
|
+
|
|
51
|
+
private DataSource<CloseableReference<CloseableImage>> dataSource;
|
|
52
|
+
|
|
53
|
+
private GroundOverlayManager.Collection groundOverlayCollection;
|
|
54
|
+
|
|
55
|
+
private ImageManager.OnImageLoadedListener imageLoadedListener;
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
public MapOverlay(Context context) {
|
|
59
|
+
super(context);
|
|
60
|
+
transparency = 1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private GenericDraweeHierarchy createDraweeHierarchy() {
|
|
64
|
+
return new GenericDraweeHierarchyBuilder(getResources())
|
|
65
|
+
.setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
|
|
66
|
+
.setFadeDuration(0)
|
|
67
|
+
.build();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
public void setBounds(LatLngBounds bounds) {
|
|
73
|
+
this.bounds = bounds;
|
|
74
|
+
if (this.groundOverlay != null) {
|
|
75
|
+
this.groundOverlay.setPositionFromBounds(this.bounds);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public void setBearing(float bearing) {
|
|
80
|
+
this.bearing = bearing;
|
|
81
|
+
if (this.groundOverlay != null) {
|
|
82
|
+
this.groundOverlay.setBearing(bearing);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public void setZIndex(float zIndex) {
|
|
87
|
+
this.zIndex = zIndex;
|
|
88
|
+
if (this.groundOverlay != null) {
|
|
89
|
+
this.groundOverlay.setZIndex(zIndex);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
public void setTransparency(float transparency) {
|
|
94
|
+
this.transparency = transparency;
|
|
95
|
+
if (groundOverlay != null) {
|
|
96
|
+
groundOverlay.setTransparency(transparency);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
public void setImage(String uri) {
|
|
102
|
+
boolean shouldLoadImage = true;
|
|
103
|
+
|
|
104
|
+
this.imageUri = uri;
|
|
105
|
+
if (!shouldLoadImage) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (uri == null) {
|
|
110
|
+
bitmapDescriptor = null;
|
|
111
|
+
} else if (uri.startsWith("http://") || uri.startsWith("https://") ||
|
|
112
|
+
uri.startsWith("file://") || uri.startsWith("asset://") || uri.startsWith("data:")) {
|
|
113
|
+
|
|
114
|
+
ImageRequest imageRequest = ImageRequestBuilder
|
|
115
|
+
.newBuilderWithSource(Uri.parse(uri))
|
|
116
|
+
.build();
|
|
117
|
+
|
|
118
|
+
ImagePipeline imagePipeline = Fresco.getImagePipeline();
|
|
119
|
+
dataSource = imagePipeline.fetchDecodedImage(imageRequest, this);
|
|
120
|
+
|
|
121
|
+
DataSubscriber<CloseableReference<CloseableImage>> subscriber = new BaseDataSubscriber<CloseableReference<CloseableImage>>() {
|
|
122
|
+
@Override
|
|
123
|
+
protected void onNewResultImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
|
|
124
|
+
if (!dataSource.isFinished()) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
CloseableReference<CloseableImage> imageReference = dataSource.getResult();
|
|
129
|
+
if (imageReference != null) {
|
|
130
|
+
try {
|
|
131
|
+
CloseableImage closeableImage = imageReference.get();
|
|
132
|
+
if (closeableImage instanceof CloseableBitmap) {
|
|
133
|
+
Bitmap bitmap = ((CloseableBitmap) closeableImage).getUnderlyingBitmap();
|
|
134
|
+
if (bitmap != null) {
|
|
135
|
+
bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} finally {
|
|
139
|
+
CloseableReference.closeSafely(imageReference);
|
|
140
|
+
}
|
|
141
|
+
new Handler(Looper.getMainLooper()).post(() -> update());
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@Override
|
|
146
|
+
protected void onFailureImpl(DataSource<CloseableReference<CloseableImage>> dataSource) {
|
|
147
|
+
// Handle failure
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
dataSource.subscribe(subscriber, Executors.newSingleThreadExecutor());
|
|
152
|
+
|
|
153
|
+
} else {
|
|
154
|
+
bitmapDescriptor = getBitmapDescriptorByName(uri);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
private BitmapDescriptor getBitmapDescriptorByName(String name) {
|
|
160
|
+
return BitmapDescriptorFactory.fromResource(getDrawableResourceByName(name));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private int getDrawableResourceByName(String name) {
|
|
164
|
+
return getResources().getIdentifier(
|
|
165
|
+
name,
|
|
166
|
+
"drawable",
|
|
167
|
+
getContext().getPackageName());
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
public void setTappable(boolean tapabble) {
|
|
171
|
+
this.tappable = tapabble;
|
|
172
|
+
if (groundOverlay != null) {
|
|
173
|
+
groundOverlay.setClickable(tappable);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
|
|
178
|
+
MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
|
|
179
|
+
builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
|
|
180
|
+
return builder.build();
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
public GroundOverlayOptions getGroundOverlayOptions() {
|
|
184
|
+
if (this.groundOverlayOptions == null) {
|
|
185
|
+
this.groundOverlayOptions = createGroundOverlayOptions();
|
|
186
|
+
}
|
|
187
|
+
return this.groundOverlayOptions;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
private GroundOverlayOptions createGroundOverlayOptions() {
|
|
191
|
+
if (this.groundOverlayOptions != null) {
|
|
192
|
+
return this.groundOverlayOptions;
|
|
193
|
+
}
|
|
194
|
+
GroundOverlayOptions options = new GroundOverlayOptions();
|
|
195
|
+
if (this.bitmapDescriptor != null) {
|
|
196
|
+
options.image(bitmapDescriptor);
|
|
197
|
+
} else {
|
|
198
|
+
// add stub image to be able to instantiate the overlay
|
|
199
|
+
// and store a reference to it in MapView
|
|
200
|
+
options.image(BitmapDescriptorFactory.defaultMarker());
|
|
201
|
+
// hide overlay until real image gets added
|
|
202
|
+
options.visible(false);
|
|
203
|
+
}
|
|
204
|
+
options.positionFromBounds(bounds);
|
|
205
|
+
options.zIndex(zIndex);
|
|
206
|
+
options.bearing(bearing);
|
|
207
|
+
// options.transparency(transparency);
|
|
208
|
+
return options;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@Override
|
|
212
|
+
public Object getFeature() {
|
|
213
|
+
return groundOverlay;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@Override
|
|
217
|
+
public void addToMap(Object collection) {
|
|
218
|
+
GroundOverlayManager.Collection groundOverlayCollection = (GroundOverlayManager.Collection) collection;
|
|
219
|
+
GroundOverlayOptions groundOverlayOptions = getGroundOverlayOptions();
|
|
220
|
+
if (groundOverlayOptions != null) {
|
|
221
|
+
groundOverlay = groundOverlayCollection.addGroundOverlay(groundOverlayOptions);
|
|
222
|
+
groundOverlay.setClickable(this.tappable);
|
|
223
|
+
} else {
|
|
224
|
+
this.groundOverlayCollection = groundOverlayCollection;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
@Override
|
|
229
|
+
public void removeFromMap(Object collection) {
|
|
230
|
+
if (groundOverlay != null) {
|
|
231
|
+
GroundOverlayManager.Collection groundOverlayCollection = (GroundOverlayManager.Collection) collection;
|
|
232
|
+
groundOverlayCollection.remove(groundOverlay);
|
|
233
|
+
groundOverlay = null;
|
|
234
|
+
groundOverlayOptions = null;
|
|
235
|
+
}
|
|
236
|
+
groundOverlayCollection = null;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
public void update() {
|
|
240
|
+
this.groundOverlay = getGroundOverlay();
|
|
241
|
+
if (this.groundOverlay != null) {
|
|
242
|
+
this.groundOverlay.setVisible(true);
|
|
243
|
+
this.groundOverlay.setImage(this.bitmapDescriptor);
|
|
244
|
+
// this.groundOverlay.setTransparency(this.transparency);
|
|
245
|
+
this.groundOverlay.setClickable(this.tappable);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
private GroundOverlay getGroundOverlay() {
|
|
250
|
+
if (this.groundOverlay != null) {
|
|
251
|
+
return this.groundOverlay;
|
|
252
|
+
}
|
|
253
|
+
if (this.groundOverlayCollection == null) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
GroundOverlayOptions groundOverlayOptions = getGroundOverlayOptions();
|
|
257
|
+
if (groundOverlayOptions != null) {
|
|
258
|
+
return this.groundOverlayCollection.addGroundOverlay(groundOverlayOptions);
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.util.DisplayMetrics;
|
|
5
|
+
import android.view.WindowManager;
|
|
6
|
+
|
|
7
|
+
import androidx.annotation.Nullable;
|
|
8
|
+
|
|
9
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
10
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
11
|
+
import com.facebook.react.common.MapBuilder;
|
|
12
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
13
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
14
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
15
|
+
import com.google.android.gms.maps.model.LatLng;
|
|
16
|
+
import com.google.android.gms.maps.model.LatLngBounds;
|
|
17
|
+
|
|
18
|
+
import java.util.Map;
|
|
19
|
+
|
|
20
|
+
public class MapOverlayManager extends ViewGroupManager<MapOverlay> {
|
|
21
|
+
|
|
22
|
+
public MapOverlayManager(ReactApplicationContext reactContext) {
|
|
23
|
+
super();
|
|
24
|
+
DisplayMetrics metrics = new DisplayMetrics();
|
|
25
|
+
((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
|
|
26
|
+
.getDefaultDisplay()
|
|
27
|
+
.getRealMetrics(metrics);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
public String getName() {
|
|
32
|
+
return "AIRMapOverlay";
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public MapOverlay createViewInstance(ThemedReactContext context) {
|
|
37
|
+
return new MapOverlay(context);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactProp(name = "bounds")
|
|
41
|
+
public void setBounds(MapOverlay view, ReadableArray bounds) {
|
|
42
|
+
view.setBounds(fixBoundsIfNecessary(bounds));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// seems like apple users north west, south east
|
|
46
|
+
// google uses north east, south west
|
|
47
|
+
private static LatLngBounds fixBoundsIfNecessary(ReadableArray bounds) {
|
|
48
|
+
double lat1 = bounds.getArray(0).getDouble(0);
|
|
49
|
+
double lon1 = bounds.getArray(0).getDouble(1);
|
|
50
|
+
double lat2 = bounds.getArray(1).getDouble(0);
|
|
51
|
+
double lon2 = bounds.getArray(1).getDouble(1);
|
|
52
|
+
|
|
53
|
+
// Ensure lat1/lon1 is the SW corner and lat2/lon2 is the NE corner
|
|
54
|
+
double southLat = Math.min(lat1, lat2);
|
|
55
|
+
double northLat = Math.max(lat1, lat2);
|
|
56
|
+
double westLon = Math.min(lon1, lon2);
|
|
57
|
+
double eastLon = Math.max(lon1, lon2);
|
|
58
|
+
|
|
59
|
+
// Create corrected LatLngs
|
|
60
|
+
LatLng sw = new LatLng(southLat, westLon);
|
|
61
|
+
LatLng ne = new LatLng(northLat, eastLon);
|
|
62
|
+
return new LatLngBounds(sw, ne);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@ReactProp(name = "bearing")
|
|
66
|
+
public void setBearing(MapOverlay view, float bearing){
|
|
67
|
+
view.setBearing(bearing);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@ReactProp(name = "zIndex", defaultFloat = 1.0f)
|
|
71
|
+
public void setZIndex(MapOverlay view, float zIndex) {
|
|
72
|
+
view.setZIndex(zIndex);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@ReactProp(name = "opacity", defaultFloat = 1.0f)
|
|
76
|
+
public void setOpacity(MapOverlay view, float opacity) {
|
|
77
|
+
view.setTransparency(1 - opacity);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@ReactProp(name = "image")
|
|
81
|
+
public void setImage(MapOverlay view, @Nullable String source) {
|
|
82
|
+
view.setImage(source);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@ReactProp(name = "tappable", defaultBoolean = false)
|
|
86
|
+
public void setTappable(MapOverlay view, boolean tapabble) {
|
|
87
|
+
view.setTappable(tapabble);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@Override
|
|
91
|
+
@Nullable
|
|
92
|
+
public Map getExportedCustomDirectEventTypeConstants() {
|
|
93
|
+
return MapBuilder.of(
|
|
94
|
+
"onPress", MapBuilder.of("registrationName", "onPress")
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
|
+
import android.graphics.Color;
|
|
4
5
|
|
|
6
|
+
import com.facebook.react.bridge.ReactContext;
|
|
5
7
|
import com.facebook.react.bridge.ReadableArray;
|
|
6
8
|
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
-
import com.
|
|
9
|
+
import com.facebook.react.bridge.WritableMap;
|
|
10
|
+
import com.facebook.react.common.MapBuilder;
|
|
11
|
+
import com.facebook.react.uimanager.UIManagerHelper;
|
|
12
|
+
import com.facebook.react.uimanager.events.Event;
|
|
13
|
+
import com.facebook.react.uimanager.events.EventDispatcher;
|
|
14
|
+
import com.google.android.gms.maps.model.Dash;
|
|
15
|
+
import com.google.android.gms.maps.model.Gap;
|
|
8
16
|
import com.google.android.gms.maps.model.LatLng;
|
|
17
|
+
import com.google.android.gms.maps.model.PatternItem;
|
|
9
18
|
import com.google.android.gms.maps.model.Polygon;
|
|
10
19
|
import com.google.android.gms.maps.model.PolygonOptions;
|
|
20
|
+
import com.google.maps.android.collections.PolygonManager;
|
|
21
|
+
import com.rnmaps.fabric.event.OnPressEvent;
|
|
11
22
|
|
|
12
23
|
import java.util.ArrayList;
|
|
13
24
|
import java.util.List;
|
|
25
|
+
import java.util.Map;
|
|
14
26
|
|
|
15
|
-
public class
|
|
27
|
+
public class MapPolygon extends MapFeature {
|
|
16
28
|
|
|
17
29
|
private PolygonOptions polygonOptions;
|
|
18
30
|
private Polygon polygon;
|
|
@@ -25,11 +37,34 @@ public class AirMapPolygon extends AirMapFeature {
|
|
|
25
37
|
private boolean geodesic;
|
|
26
38
|
private boolean tappable;
|
|
27
39
|
private float zIndex;
|
|
40
|
+
private ReadableArray patternValues;
|
|
41
|
+
private List<PatternItem> pattern;
|
|
28
42
|
|
|
29
|
-
public
|
|
43
|
+
public MapPolygon(Context context) {
|
|
30
44
|
super(context);
|
|
45
|
+
strokeWidth = 10;
|
|
31
46
|
}
|
|
32
47
|
|
|
48
|
+
public static Map<String, Object> getExportedCustomBubblingEventTypeConstants() {
|
|
49
|
+
MapBuilder.Builder<String, Object> builder = MapBuilder.builder();
|
|
50
|
+
builder.put(OnPressEvent.EVENT_NAME, MapBuilder.of("registrationName", OnPressEvent.EVENT_NAME));
|
|
51
|
+
return builder.build();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public <T extends Event> void dispatchEvent(WritableMap payload, MapView.EventCreator<T> creator, ReactContext reactContext) {
|
|
55
|
+
|
|
56
|
+
// Get the event dispatcher
|
|
57
|
+
EventDispatcher eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, getId());
|
|
58
|
+
|
|
59
|
+
// If there is a dispatcher, create and dispatch the event
|
|
60
|
+
if (eventDispatcher != null) {
|
|
61
|
+
int surfaceId = UIManagerHelper.getSurfaceId(reactContext);
|
|
62
|
+
T event = creator.create(surfaceId, getId(), payload);
|
|
63
|
+
eventDispatcher.dispatchEvent(event);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
33
68
|
public void setCoordinates(ReadableArray coordinates) {
|
|
34
69
|
// it's kind of a bummer that we can't run map() or anything on the ReadableArray
|
|
35
70
|
this.coordinates = new ArrayList<>(coordinates.size());
|
|
@@ -117,6 +152,32 @@ public class AirMapPolygon extends AirMapFeature {
|
|
|
117
152
|
}
|
|
118
153
|
}
|
|
119
154
|
|
|
155
|
+
public void setLineDashPattern(ReadableArray patternValues) {
|
|
156
|
+
this.patternValues = patternValues;
|
|
157
|
+
this.applyPattern();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private void applyPattern() {
|
|
161
|
+
if(patternValues == null) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
this.pattern = new ArrayList<>(patternValues.size());
|
|
165
|
+
for (int i = 0; i < patternValues.size(); i++) {
|
|
166
|
+
float patternValue = (float) patternValues.getDouble(i);
|
|
167
|
+
boolean isGap = i % 2 != 0;
|
|
168
|
+
if(isGap) {
|
|
169
|
+
this.pattern.add(new Gap(patternValue));
|
|
170
|
+
}else {
|
|
171
|
+
PatternItem patternItem;
|
|
172
|
+
patternItem = new Dash(patternValue);
|
|
173
|
+
this.pattern.add(patternItem);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if(polygon != null) {
|
|
177
|
+
polygon.setStrokePattern(this.pattern);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
120
181
|
public PolygonOptions getPolygonOptions() {
|
|
121
182
|
if (polygonOptions == null) {
|
|
122
183
|
polygonOptions = createPolygonOptions();
|
|
@@ -132,6 +193,8 @@ public class AirMapPolygon extends AirMapFeature {
|
|
|
132
193
|
options.strokeWidth(strokeWidth);
|
|
133
194
|
options.geodesic(geodesic);
|
|
134
195
|
options.zIndex(zIndex);
|
|
196
|
+
options.strokePattern(this.pattern);
|
|
197
|
+
options.clickable(this.tappable);
|
|
135
198
|
|
|
136
199
|
if (this.holes != null) {
|
|
137
200
|
for (int i = 0; i < holes.size(); i++) {
|
|
@@ -148,13 +211,14 @@ public class AirMapPolygon extends AirMapFeature {
|
|
|
148
211
|
}
|
|
149
212
|
|
|
150
213
|
@Override
|
|
151
|
-
public void addToMap(
|
|
152
|
-
|
|
153
|
-
polygon.
|
|
214
|
+
public void addToMap(Object collection) {
|
|
215
|
+
PolygonManager.Collection polygonCollection = (PolygonManager.Collection) collection;
|
|
216
|
+
polygon = polygonCollection.addPolygon(getPolygonOptions());
|
|
154
217
|
}
|
|
155
218
|
|
|
156
219
|
@Override
|
|
157
|
-
public void removeFromMap(
|
|
158
|
-
|
|
220
|
+
public void removeFromMap(Object collection) {
|
|
221
|
+
PolygonManager.Collection polygonCollection = (PolygonManager.Collection) collection;
|
|
222
|
+
polygonCollection.remove(polygon);
|
|
159
223
|
}
|
|
160
224
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
package com.
|
|
1
|
+
package com.rnmaps.maps;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.graphics.Color;
|
|
5
|
-
import android.os.Build;
|
|
6
5
|
import android.util.DisplayMetrics;
|
|
7
6
|
import android.view.WindowManager;
|
|
8
7
|
|
|
@@ -17,19 +16,15 @@ import com.facebook.react.uimanager.annotations.ReactProp;
|
|
|
17
16
|
|
|
18
17
|
import java.util.Map;
|
|
19
18
|
|
|
20
|
-
public class
|
|
19
|
+
public class MapPolygonManager extends ViewGroupManager<MapPolygon> {
|
|
21
20
|
private final DisplayMetrics metrics;
|
|
22
21
|
|
|
23
|
-
public
|
|
22
|
+
public MapPolygonManager(ReactApplicationContext reactContext) {
|
|
24
23
|
super();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
.getRealMetrics(metrics);
|
|
30
|
-
} else {
|
|
31
|
-
metrics = reactContext.getResources().getDisplayMetrics();
|
|
32
|
-
}
|
|
24
|
+
metrics = new DisplayMetrics();
|
|
25
|
+
((WindowManager) reactContext.getSystemService(Context.WINDOW_SERVICE))
|
|
26
|
+
.getDefaultDisplay()
|
|
27
|
+
.getRealMetrics(metrics);
|
|
33
28
|
}
|
|
34
29
|
|
|
35
30
|
@Override
|
|
@@ -38,51 +33,56 @@ public class AirMapPolygonManager extends ViewGroupManager<AirMapPolygon> {
|
|
|
38
33
|
}
|
|
39
34
|
|
|
40
35
|
@Override
|
|
41
|
-
public
|
|
42
|
-
return new
|
|
36
|
+
public MapPolygon createViewInstance(ThemedReactContext context) {
|
|
37
|
+
return new MapPolygon(context);
|
|
43
38
|
}
|
|
44
39
|
|
|
45
40
|
@ReactProp(name = "coordinates")
|
|
46
|
-
public void setCoordinate(
|
|
41
|
+
public void setCoordinate(MapPolygon view, ReadableArray coordinates) {
|
|
47
42
|
view.setCoordinates(coordinates);
|
|
48
43
|
}
|
|
49
44
|
|
|
50
45
|
@ReactProp(name = "holes")
|
|
51
|
-
public void setHoles(
|
|
46
|
+
public void setHoles(MapPolygon view, ReadableArray holes) {
|
|
52
47
|
view.setHoles(holes);
|
|
53
48
|
}
|
|
54
49
|
|
|
55
50
|
@ReactProp(name = "strokeWidth", defaultFloat = 1f)
|
|
56
|
-
public void setStrokeWidth(
|
|
51
|
+
public void setStrokeWidth(MapPolygon view, float widthInPoints) {
|
|
57
52
|
float widthInScreenPx = metrics.density * widthInPoints; // done for parity with iOS
|
|
58
53
|
view.setStrokeWidth(widthInScreenPx);
|
|
59
54
|
}
|
|
60
55
|
|
|
61
56
|
@ReactProp(name = "fillColor", defaultInt = Color.RED, customType = "Color")
|
|
62
|
-
public void setFillColor(
|
|
57
|
+
public void setFillColor(MapPolygon view, int color) {
|
|
63
58
|
view.setFillColor(color);
|
|
64
59
|
}
|
|
65
60
|
|
|
66
61
|
@ReactProp(name = "strokeColor", defaultInt = Color.RED, customType = "Color")
|
|
67
|
-
public void setStrokeColor(
|
|
62
|
+
public void setStrokeColor(MapPolygon view, int color) {
|
|
68
63
|
view.setStrokeColor(color);
|
|
69
64
|
}
|
|
70
65
|
|
|
71
66
|
@ReactProp(name = "tappable", defaultBoolean = false)
|
|
72
|
-
public void setTappable(
|
|
67
|
+
public void setTappable(MapPolygon view, boolean tapabble) {
|
|
73
68
|
view.setTappable(tapabble);
|
|
74
69
|
}
|
|
75
70
|
|
|
76
71
|
@ReactProp(name = "geodesic", defaultBoolean = false)
|
|
77
|
-
public void setGeodesic(
|
|
72
|
+
public void setGeodesic(MapPolygon view, boolean geodesic) {
|
|
78
73
|
view.setGeodesic(geodesic);
|
|
79
74
|
}
|
|
80
75
|
|
|
81
76
|
@ReactProp(name = "zIndex", defaultFloat = 1.0f)
|
|
82
|
-
public void setZIndex(
|
|
77
|
+
public void setZIndex(MapPolygon view, float zIndex) {
|
|
83
78
|
view.setZIndex(zIndex);
|
|
84
79
|
}
|
|
85
80
|
|
|
81
|
+
@ReactProp(name = "lineDashPattern")
|
|
82
|
+
public void setLineDashPattern(MapPolygon view, ReadableArray patternValues) {
|
|
83
|
+
view.setLineDashPattern(patternValues);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
86
|
@Override
|
|
87
87
|
@Nullable
|
|
88
88
|
public Map getExportedCustomDirectEventTypeConstants() {
|