react-native-google-maps-plus 1.0.1 → 1.0.3-dev.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/README.md +127 -11
- package/{GoogleMapsNitro.podspec → RNGoogleMapsPlus.podspec} +2 -2
- package/android/CMakeLists.txt +3 -3
- package/android/build.gradle +4 -4
- package/android/gradle.properties +8 -8
- package/android/src/main/cpp/cpp-adapter.cpp +2 -2
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/Color.kt +1 -1
- package/android/src/main/java/com/{googlemapsnitro/GoogleMapsNitroViewImpl.kt → rngooglemapsplus/GoogleMapsViewImpl.kt} +242 -115
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/LocationHandler.kt +1 -1
- package/android/src/main/java/com/rngooglemapsplus/MapCircle.kt +29 -0
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/MapMarker.kt +7 -6
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/MapPolygon.kt +4 -2
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/MapPolyline.kt +4 -2
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/PermissionHandler.kt +1 -1
- package/android/src/main/java/com/{googlemapsnitro → rngooglemapsplus}/PlayServicesHandler.kt +1 -1
- package/android/src/main/java/com/{googlemapsnitro/HybridGoogleMapsNitroModule.kt → rngooglemapsplus/RNGoogleMapsPlusModule.kt} +3 -3
- package/android/src/main/java/com/{googlemapsnitro/GoogleMapsNitroPackage.kt → rngooglemapsplus/RNGoogleMapsPlusPackage.kt} +6 -6
- package/android/src/main/java/com/{googlemapsnitro/HybridGoogleMapsNitroView.kt → rngooglemapsplus/RNGoogleMapsPlusView.kt} +119 -92
- package/ios/Color.swift +20 -20
- package/ios/{GoogleMapNitroViewImpl.swift → GoogleMapViewImpl.swift} +195 -140
- package/ios/MapCircle.swift +43 -0
- package/ios/MapMarker.swift +10 -17
- package/ios/MapPolygon.swift +9 -6
- package/ios/MapPolyline.swift +9 -7
- package/ios/PermissionHandler.swift +1 -1
- package/ios/{HybridGoogleMapsNitroModule.swift → RNGoogleMapsPlusModule.swift} +2 -2
- package/ios/{HybridGoogleMapsNitroView.swift → RNGoogleMapsPlusView.swift} +151 -108
- package/lib/module/RNGoogleMapsPlusModule.nitro.js +4 -0
- package/lib/module/RNGoogleMapsPlusModule.nitro.js.map +1 -0
- package/lib/module/RNGoogleMapsPlusView.nitro.js +4 -0
- package/lib/module/RNGoogleMapsPlusView.nitro.js.map +1 -0
- package/lib/module/index.js +3 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/{GoogleMapsNitroModule.nitro.d.ts → RNGoogleMapsPlusModule.nitro.d.ts} +2 -2
- package/lib/typescript/src/RNGoogleMapsPlusModule.nitro.d.ts.map +1 -0
- package/lib/typescript/src/{GoogleMapsNitroView.nitro.d.ts → RNGoogleMapsPlusView.nitro.d.ts} +21 -16
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +5 -5
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +23 -5
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitro.json +11 -11
- package/nitrogen/generated/android/{GoogleMapsNitro+autolinking.cmake → RNGoogleMapsPlus+autolinking.cmake} +15 -15
- package/nitrogen/generated/android/{GoogleMapsNitro+autolinking.gradle → RNGoogleMapsPlus+autolinking.gradle} +3 -3
- package/nitrogen/generated/android/RNGoogleMapsPlusOnLoad.cpp +70 -0
- package/nitrogen/generated/android/{GoogleMapsNitroOnLoad.hpp → RNGoogleMapsPlusOnLoad.hpp} +5 -5
- package/nitrogen/generated/android/c++/JFunc_void_RNLatLng.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_RNLocation.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_RNLocationErrorCode.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_RNMapErrorCode.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_RNRegion_RNCamera_bool.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +4 -4
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +4 -4
- package/nitrogen/generated/android/c++/{JHybridGoogleMapsNitroModuleSpec.cpp → JHybridRNGoogleMapsPlusModuleSpec.cpp} +16 -16
- package/nitrogen/generated/android/c++/{JHybridGoogleMapsNitroModuleSpec.hpp → JHybridRNGoogleMapsPlusModuleSpec.hpp} +12 -12
- package/nitrogen/generated/android/c++/{JHybridGoogleMapsNitroViewSpec.cpp → JHybridRNGoogleMapsPlusViewSpec.cpp} +223 -119
- package/nitrogen/generated/android/c++/{JHybridGoogleMapsNitroViewSpec.hpp → JHybridRNGoogleMapsPlusViewSpec.hpp} +44 -34
- package/nitrogen/generated/android/c++/JRNAndroidLocationPermissionResult.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNCamera.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNCircle.hpp +84 -0
- package/nitrogen/generated/android/c++/JRNIOSPermissionResult.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNInitialProps.hpp +66 -0
- package/nitrogen/generated/android/c++/JRNLatLng.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNLineCapType.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNLineJoinType.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNLocation.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNLocationErrorCode.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNLocationPermissionResult.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNMapErrorCode.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNMapPadding.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNMapType.hpp +68 -0
- package/nitrogen/generated/android/c++/JRNMarker.hpp +7 -7
- package/nitrogen/generated/android/c++/JRNPolygon.hpp +11 -7
- package/nitrogen/generated/android/c++/JRNPolyline.hpp +11 -7
- package/nitrogen/generated/android/c++/JRNPosition.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNRegion.hpp +3 -3
- package/nitrogen/generated/android/c++/JRNUserInterfaceStyle.hpp +3 -3
- package/nitrogen/generated/android/c++/views/{JHybridGoogleMapsNitroViewStateUpdater.cpp → JHybridRNGoogleMapsPlusViewStateUpdater.cpp} +38 -18
- package/nitrogen/generated/android/c++/views/{JHybridGoogleMapsNitroViewStateUpdater.hpp → JHybridRNGoogleMapsPlusViewStateUpdater.hpp} +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_RNLatLng.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_RNLocation.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_RNLocationErrorCode.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_RNMapErrorCode.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_RNRegion_RNCamera_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/Func_void_std__string.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro/HybridGoogleMapsNitroModuleSpec.kt → rngooglemapsplus/HybridRNGoogleMapsPlusModuleSpec.kt} +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro/HybridGoogleMapsNitroViewSpec.kt → rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt} +71 -17
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNAndroidLocationPermissionResult.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNCamera.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNCircle.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro/GoogleMapsNitroOnLoad.kt → rngooglemapsplus/RNGoogleMapsPlusOnLoad.kt} +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNIOSPermissionResult.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLatLng.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLineCapType.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLineJoinType.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLocation.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLocationErrorCode.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNLocationPermissionResult.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNMapErrorCode.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNMapPadding.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapType.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNMarker.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNPolygon.kt +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNPolyline.kt +5 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNPosition.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNRegion.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro → rngooglemapsplus}/RNUserInterfaceStyle.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro/views/HybridGoogleMapsNitroViewManager.kt → rngooglemapsplus/views/HybridRNGoogleMapsPlusViewManager.kt} +16 -10
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/{googlemapsnitro/views/HybridGoogleMapsNitroViewStateUpdater.kt → rngooglemapsplus/views/HybridRNGoogleMapsPlusViewStateUpdater.kt} +5 -5
- package/nitrogen/generated/ios/{GoogleMapsNitro+autolinking.rb → RNGoogleMapsPlus+autolinking.rb} +4 -4
- package/nitrogen/generated/ios/{GoogleMapsNitro-Swift-Cxx-Bridge.cpp → RNGoogleMapsPlus-Swift-Cxx-Bridge.cpp} +32 -32
- package/nitrogen/generated/ios/{GoogleMapsNitro-Swift-Cxx-Bridge.hpp → RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp} +233 -90
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +113 -0
- package/nitrogen/generated/ios/RNGoogleMapsPlusAutolinking.mm +41 -0
- package/nitrogen/generated/ios/{GoogleMapsNitroAutolinking.swift → RNGoogleMapsPlusAutolinking.swift} +15 -15
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusModuleSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/{HybridGoogleMapsNitroModuleSpecSwift.hpp → HybridRNGoogleMapsPlusModuleSpecSwift.hpp} +18 -18
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/{HybridGoogleMapsNitroViewSpecSwift.hpp → HybridRNGoogleMapsPlusViewSpecSwift.hpp} +117 -69
- package/nitrogen/generated/ios/c++/views/{HybridGoogleMapsNitroViewComponent.mm → HybridRNGoogleMapsPlusViewComponent.mm} +59 -34
- package/nitrogen/generated/ios/swift/Func_void_RNLatLng.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_RNLocation.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_RNLocationErrorCode.swift +2 -2
- package/nitrogen/generated/ios/swift/Func_void_RNLocationPermissionResult.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_RNMapErrorCode.swift +2 -2
- package/nitrogen/generated/ios/swift/Func_void_RNRegion_RNCamera_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusModuleSpec.swift +52 -0
- package/nitrogen/generated/ios/swift/{HybridGoogleMapsNitroModuleSpec_cxx.swift → HybridRNGoogleMapsPlusModuleSpec_cxx.swift} +21 -21
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +78 -0
- package/nitrogen/generated/ios/swift/{HybridGoogleMapsNitroViewSpec_cxx.swift → HybridRNGoogleMapsPlusViewSpec_cxx.swift} +317 -66
- package/nitrogen/generated/ios/swift/RNAndroidLocationPermissionResult.swift +1 -1
- package/nitrogen/generated/ios/swift/RNCamera.swift +2 -2
- package/nitrogen/generated/ios/swift/RNCircle.swift +198 -0
- package/nitrogen/generated/ios/swift/RNIOSPermissionResult.swift +1 -1
- package/nitrogen/generated/ios/swift/RNInitialProps.swift +107 -0
- package/nitrogen/generated/ios/swift/RNLatLng.swift +2 -2
- package/nitrogen/generated/ios/swift/RNLineCapType.swift +1 -1
- package/nitrogen/generated/ios/swift/RNLineJoinType.swift +1 -1
- package/nitrogen/generated/ios/swift/RNLocation.swift +2 -2
- package/nitrogen/generated/ios/swift/RNLocationErrorCode.swift +1 -1
- package/nitrogen/generated/ios/swift/RNLocationPermissionResult.swift +2 -2
- package/nitrogen/generated/ios/swift/RNMapErrorCode.swift +1 -1
- package/nitrogen/generated/ios/swift/RNMapPadding.swift +2 -2
- package/nitrogen/generated/ios/swift/RNMapType.swift +52 -0
- package/nitrogen/generated/ios/swift/RNMarker.swift +19 -7
- package/nitrogen/generated/ios/swift/RNPolygon.swift +42 -7
- package/nitrogen/generated/ios/swift/RNPolyline.swift +42 -7
- package/nitrogen/generated/ios/swift/RNPosition.swift +2 -2
- package/nitrogen/generated/ios/swift/RNRegion.swift +2 -2
- package/nitrogen/generated/ios/swift/RNUserInterfaceStyle.swift +1 -1
- package/nitrogen/generated/shared/c++/{HybridGoogleMapsNitroModuleSpec.cpp → HybridRNGoogleMapsPlusModuleSpec.cpp} +9 -9
- package/nitrogen/generated/shared/c++/{HybridGoogleMapsNitroModuleSpec.hpp → HybridRNGoogleMapsPlusModuleSpec.hpp} +12 -12
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +76 -0
- package/nitrogen/generated/shared/c++/{HybridGoogleMapsNitroViewSpec.hpp → HybridRNGoogleMapsPlusViewSpec.hpp} +67 -48
- package/nitrogen/generated/shared/c++/RNAndroidLocationPermissionResult.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNCamera.hpp +10 -10
- package/nitrogen/generated/shared/c++/RNCircle.hpp +98 -0
- package/nitrogen/generated/shared/c++/RNIOSPermissionResult.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNInitialProps.hpp +78 -0
- package/nitrogen/generated/shared/c++/RNLatLng.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNLineCapType.hpp +11 -11
- package/nitrogen/generated/shared/c++/RNLineJoinType.hpp +11 -11
- package/nitrogen/generated/shared/c++/RNLocation.hpp +10 -10
- package/nitrogen/generated/shared/c++/RNLocationErrorCode.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNLocationPermissionResult.hpp +14 -14
- package/nitrogen/generated/shared/c++/RNMapErrorCode.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNMapPadding.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNMapType.hpp +88 -0
- package/nitrogen/generated/shared/c++/RNMarker.hpp +20 -20
- package/nitrogen/generated/shared/c++/RNPolygon.hpp +20 -16
- package/nitrogen/generated/shared/c++/RNPolyline.hpp +28 -24
- package/nitrogen/generated/shared/c++/RNPosition.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNRegion.hpp +10 -10
- package/nitrogen/generated/shared/c++/RNUserInterfaceStyle.hpp +11 -11
- package/nitrogen/generated/shared/c++/views/{HybridGoogleMapsNitroViewComponent.cpp → HybridRNGoogleMapsPlusViewComponent.cpp} +133 -73
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +147 -0
- package/nitrogen/generated/shared/json/{GoogleMapsNitroViewConfig.json → RNGoogleMapsPlusViewConfig.json} +7 -2
- package/package.json +13 -7
- package/src/{GoogleMapsNitroModule.nitro.ts → RNGoogleMapsPlusModule.nitro.ts} +1 -1
- package/src/{GoogleMapsNitroView.nitro.ts → RNGoogleMapsPlusView.nitro.ts} +24 -16
- package/src/index.tsx +11 -11
- package/src/types.ts +26 -5
- package/lib/module/GoogleMapsNitroModule.nitro.js +0 -4
- package/lib/module/GoogleMapsNitroModule.nitro.js.map +0 -1
- package/lib/module/GoogleMapsNitroView.nitro.js +0 -4
- package/lib/module/GoogleMapsNitroView.nitro.js.map +0 -1
- package/lib/typescript/src/GoogleMapsNitroModule.nitro.d.ts.map +0 -1
- package/lib/typescript/src/GoogleMapsNitroView.nitro.d.ts.map +0 -1
- package/nitrogen/generated/android/GoogleMapsNitroOnLoad.cpp +0 -70
- package/nitrogen/generated/ios/GoogleMapsNitro-Swift-Cxx-Umbrella.hpp +0 -104
- package/nitrogen/generated/ios/GoogleMapsNitroAutolinking.mm +0 -41
- package/nitrogen/generated/ios/c++/HybridGoogleMapsNitroModuleSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/c++/HybridGoogleMapsNitroViewSpecSwift.cpp +0 -11
- package/nitrogen/generated/ios/swift/HybridGoogleMapsNitroModuleSpec.swift +0 -52
- package/nitrogen/generated/ios/swift/HybridGoogleMapsNitroViewSpec.swift +0 -73
- package/nitrogen/generated/shared/c++/HybridGoogleMapsNitroViewSpec.cpp +0 -66
- package/nitrogen/generated/shared/c++/views/HybridGoogleMapsNitroViewComponent.hpp +0 -139
|
@@ -2,35 +2,23 @@ import CoreLocation
|
|
|
2
2
|
import GoogleMaps
|
|
3
3
|
import UIKit
|
|
4
4
|
|
|
5
|
-
final class
|
|
5
|
+
final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
|
|
6
6
|
|
|
7
7
|
private let locationHandler: LocationHandler
|
|
8
8
|
private let markerOptions: MapMarkerOptions
|
|
9
|
-
private var mapView: GMSMapView
|
|
9
|
+
private var mapView: GMSMapView?
|
|
10
|
+
private var initialized = false
|
|
10
11
|
private var mapReady = false
|
|
11
12
|
|
|
12
|
-
private var pendingBuildingEnabled: Bool = false
|
|
13
|
-
private var pendingTrafficEnabled: Bool = false
|
|
14
|
-
private var pendingCustomMapStyle: GMSMapStyle?
|
|
15
|
-
private var pendingInitialCamera: GMSCameraPosition =
|
|
16
|
-
GMSCameraPosition.camera(withLatitude: 0, longitude: 0, zoom: 0)
|
|
17
|
-
private var pendingUserInterfaceStyle = UIUserInterfaceStyle.unspecified
|
|
18
|
-
private var pendingMinZoomLevel: Double = 0.0
|
|
19
|
-
private var pendingMaxZoomLevel: Double = 21.0
|
|
20
|
-
private var pendingMapPadding: RNMapPadding = .init(
|
|
21
|
-
top: 0,
|
|
22
|
-
left: 0,
|
|
23
|
-
bottom: 0,
|
|
24
|
-
right: 0
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
private var pendingPolygons: [(id: String, polygon: GMSPolygon)] = []
|
|
28
|
-
private var pendingPolylines: [(id: String, polyline: GMSPolyline)] = []
|
|
29
13
|
private var pendingMarkers: [(id: String, marker: GMSMarker)] = []
|
|
14
|
+
private var pendingPolylines: [(id: String, polyline: GMSPolyline)] = []
|
|
15
|
+
private var pendingPolygons: [(id: String, polygon: GMSPolygon)] = []
|
|
16
|
+
private var pendingCircles: [(id: String, circle: GMSCircle)] = []
|
|
30
17
|
|
|
31
|
-
private var polygonsById: [String: GMSPolygon] = [:]
|
|
32
|
-
private var polylinesById: [String: GMSPolyline] = [:]
|
|
33
18
|
private var markersById: [String: GMSMarker] = [:]
|
|
19
|
+
private var polylinesById: [String: GMSPolyline] = [:]
|
|
20
|
+
private var polygonsById: [String: GMSPolygon] = [:]
|
|
21
|
+
private var circlesById: [String: GMSCircle] = [:]
|
|
34
22
|
|
|
35
23
|
private var cameraMoveReasonIsGesture: Bool = false
|
|
36
24
|
private var lastSubmittedCameraPosition: GMSCameraPosition?
|
|
@@ -42,6 +30,9 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
42
30
|
var onLocationError: ((_ error: RNLocationErrorCode) -> Void)?
|
|
43
31
|
var onMapPress: ((RNLatLng) -> Void)?
|
|
44
32
|
var onMarkerPress: ((String) -> Void)?
|
|
33
|
+
var onPolylinePress: ((String) -> Void)?
|
|
34
|
+
var onPolygonPress: ((String) -> Void)?
|
|
35
|
+
var onCirclePress: ((String) -> Void)?
|
|
45
36
|
var onCameraChangeStart: ((RNRegion, RNCamera, Bool) -> Void)?
|
|
46
37
|
var onCameraChange: ((RNRegion, RNCamera, Bool) -> Void)?
|
|
47
38
|
var onCameraChangeComplete: ((RNRegion, RNCamera, Bool) -> Void)?
|
|
@@ -55,15 +46,6 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
55
46
|
self.markerOptions = markerOptions
|
|
56
47
|
super.init(frame: frame)
|
|
57
48
|
setupAppLifecycleObservers()
|
|
58
|
-
setupMap()
|
|
59
|
-
|
|
60
|
-
/// wait 1 second if alle setter called
|
|
61
|
-
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in
|
|
62
|
-
self?.initLocationCallbacks()
|
|
63
|
-
self?.applyPending()
|
|
64
|
-
self?.onMapReady?(true)
|
|
65
|
-
self?.mapReady = true
|
|
66
|
-
}
|
|
67
49
|
}
|
|
68
50
|
|
|
69
51
|
private func setupAppLifecycleObservers() {
|
|
@@ -86,14 +68,31 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
86
68
|
}
|
|
87
69
|
|
|
88
70
|
@MainActor
|
|
89
|
-
|
|
71
|
+
func initMapView(mapId: String?, liteMode: Bool?, camera: GMSCameraPosition?) {
|
|
72
|
+
if initialized { return }
|
|
73
|
+
initialized = true
|
|
90
74
|
let options = GMSMapViewOptions()
|
|
91
75
|
options.frame = bounds
|
|
76
|
+
if let mapId = mapId {
|
|
77
|
+
options.mapID = GMSMapID(identifier: mapId)
|
|
78
|
+
}
|
|
79
|
+
if let liteMode = liteMode {
|
|
80
|
+
/// not supported
|
|
81
|
+
}
|
|
82
|
+
if let camera = camera {
|
|
83
|
+
options.camera = camera
|
|
84
|
+
}
|
|
92
85
|
mapView = GMSMapView.init(options: options)
|
|
93
|
-
mapView
|
|
94
|
-
mapView
|
|
95
|
-
mapView
|
|
96
|
-
|
|
86
|
+
mapView?.delegate = self
|
|
87
|
+
mapView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
88
|
+
mapView?.paddingAdjustmentBehavior = .never
|
|
89
|
+
if let mapView = mapView {
|
|
90
|
+
addSubview(mapView)
|
|
91
|
+
}
|
|
92
|
+
initLocationCallbacks()
|
|
93
|
+
applyPending()
|
|
94
|
+
onMapReady?(true)
|
|
95
|
+
mapReady = true
|
|
97
96
|
}
|
|
98
97
|
|
|
99
98
|
private func initLocationCallbacks() {
|
|
@@ -102,7 +101,7 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
102
101
|
if self.lastSubmittedLocation?.coordinate.latitude
|
|
103
102
|
!= loc.coordinate.latitude
|
|
104
103
|
|| self.lastSubmittedLocation?.coordinate.longitude
|
|
105
|
-
|
|
104
|
+
!= loc.coordinate.longitude {
|
|
106
105
|
self.onLocationUpdate?(
|
|
107
106
|
RNLocation(
|
|
108
107
|
RNLatLng(
|
|
@@ -123,21 +122,39 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
123
122
|
|
|
124
123
|
@MainActor
|
|
125
124
|
private func applyPending() {
|
|
126
|
-
mapView.padding = UIEdgeInsets(
|
|
127
|
-
top: pendingMapPadding.top,
|
|
128
|
-
left: pendingMapPadding.left,
|
|
129
|
-
bottom: pendingMapPadding.bottom,
|
|
130
|
-
right: pendingMapPadding.right
|
|
131
|
-
)
|
|
132
125
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
126
|
+
if let padding = mapPadding {
|
|
127
|
+
mapView?.padding = UIEdgeInsets(
|
|
128
|
+
top: padding.top,
|
|
129
|
+
left: padding.left,
|
|
130
|
+
bottom: padding.bottom,
|
|
131
|
+
right: padding.right
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if let style = customMapStyle {
|
|
136
|
+
mapView?.mapStyle = style
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if let mapType = mapType {
|
|
140
|
+
mapView?.mapType = mapType
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if let buildings = buildingEnabled {
|
|
144
|
+
mapView?.isBuildingsEnabled = buildings
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if let traffic = trafficEnabled {
|
|
148
|
+
mapView?.isTrafficEnabled = traffic
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if let uiStyle = userInterfaceStyle {
|
|
152
|
+
mapView?.overrideUserInterfaceStyle = uiStyle
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
if let minZoom = minZoomLevel, let maxZoom = maxZoomLevel {
|
|
156
|
+
mapView?.setMinZoom(Float(minZoom), maxZoom: Float(maxZoom))
|
|
157
|
+
}
|
|
141
158
|
|
|
142
159
|
if !pendingMarkers.isEmpty {
|
|
143
160
|
pendingMarkers.forEach {
|
|
@@ -157,119 +174,106 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
157
174
|
}
|
|
158
175
|
pendingPolygons.removeAll()
|
|
159
176
|
}
|
|
177
|
+
if !pendingCircles.isEmpty {
|
|
178
|
+
pendingCircles.forEach {
|
|
179
|
+
addCircleInternal(id: $0.id, circle: $0.circle)
|
|
180
|
+
}
|
|
181
|
+
pendingCircles.removeAll()
|
|
182
|
+
}
|
|
160
183
|
}
|
|
161
184
|
|
|
162
|
-
var currentCamera: GMSCameraPosition {
|
|
163
|
-
mapView
|
|
185
|
+
var currentCamera: GMSCameraPosition? {
|
|
186
|
+
mapView?.camera
|
|
164
187
|
}
|
|
165
188
|
|
|
166
189
|
@MainActor
|
|
167
|
-
var buildingEnabled: Bool {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
190
|
+
var buildingEnabled: Bool? {
|
|
191
|
+
didSet {
|
|
192
|
+
if let value = buildingEnabled {
|
|
193
|
+
mapView?.isBuildingsEnabled = value
|
|
194
|
+
}
|
|
172
195
|
}
|
|
173
196
|
}
|
|
174
197
|
|
|
175
198
|
@MainActor
|
|
176
|
-
var trafficEnabled: Bool {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
199
|
+
var trafficEnabled: Bool? {
|
|
200
|
+
didSet {
|
|
201
|
+
if let value = trafficEnabled {
|
|
202
|
+
mapView?.isTrafficEnabled = value
|
|
203
|
+
}
|
|
181
204
|
}
|
|
182
205
|
}
|
|
183
206
|
|
|
184
207
|
@MainActor
|
|
185
208
|
var customMapStyle: GMSMapStyle? {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
209
|
+
didSet {
|
|
210
|
+
if let style = customMapStyle {
|
|
211
|
+
mapView?.mapStyle = style
|
|
212
|
+
}
|
|
190
213
|
}
|
|
191
214
|
}
|
|
192
215
|
|
|
193
216
|
@MainActor
|
|
194
|
-
var
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if mapView != nil && !mapReady {
|
|
199
|
-
mapView.camera = newValue
|
|
217
|
+
var userInterfaceStyle: UIUserInterfaceStyle? {
|
|
218
|
+
didSet {
|
|
219
|
+
if let style = userInterfaceStyle {
|
|
220
|
+
mapView?.overrideUserInterfaceStyle = style
|
|
200
221
|
}
|
|
201
222
|
}
|
|
202
223
|
}
|
|
203
224
|
|
|
204
225
|
@MainActor
|
|
205
|
-
var
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
226
|
+
var minZoomLevel: Double? {
|
|
227
|
+
didSet {
|
|
228
|
+
if let min = minZoomLevel, let max = maxZoomLevel {
|
|
229
|
+
mapView?.setMinZoom(Float(min), maxZoom: Float(max))
|
|
230
|
+
}
|
|
210
231
|
}
|
|
211
232
|
}
|
|
212
233
|
|
|
213
234
|
@MainActor
|
|
214
|
-
var
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
235
|
+
var maxZoomLevel: Double? {
|
|
236
|
+
didSet {
|
|
237
|
+
if let max = maxZoomLevel, let min = minZoomLevel {
|
|
238
|
+
mapView?.setMinZoom(Float(min), maxZoom: Float(max))
|
|
239
|
+
}
|
|
219
240
|
}
|
|
220
241
|
}
|
|
221
242
|
|
|
222
243
|
@MainActor
|
|
223
|
-
var
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
244
|
+
var mapPadding: RNMapPadding? {
|
|
245
|
+
didSet {
|
|
246
|
+
mapPadding
|
|
247
|
+
if let padding = mapPadding {
|
|
248
|
+
mapView?.padding = UIEdgeInsets(
|
|
249
|
+
top: padding.top,
|
|
250
|
+
left: padding.left,
|
|
251
|
+
bottom: padding.bottom,
|
|
252
|
+
right: padding.right
|
|
253
|
+
)
|
|
254
|
+
} else {
|
|
255
|
+
mapView?.padding = .zero
|
|
256
|
+
}
|
|
228
257
|
}
|
|
229
258
|
}
|
|
230
259
|
|
|
231
|
-
@MainActor
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
set {
|
|
235
|
-
pendingMapPadding = newValue
|
|
236
|
-
mapView.padding = UIEdgeInsets(
|
|
237
|
-
top: newValue.top,
|
|
238
|
-
left: newValue.left,
|
|
239
|
-
bottom: newValue.bottom,
|
|
240
|
-
right: newValue.right
|
|
241
|
-
)
|
|
260
|
+
@MainActor var mapType: GMSMapViewType? {
|
|
261
|
+
didSet {
|
|
262
|
+
mapView?.mapType = mapType ?? .normal
|
|
242
263
|
}
|
|
243
264
|
}
|
|
244
265
|
|
|
245
|
-
func setCamera(camera:
|
|
246
|
-
let current = mapView.camera
|
|
247
|
-
|
|
248
|
-
let zoom = Float(camera.zoom ?? Double(current.zoom))
|
|
249
|
-
let bearing = camera.bearing ?? current.bearing
|
|
250
|
-
let viewingAngle = camera.bearing ?? current.viewingAngle
|
|
251
|
-
|
|
252
|
-
let target = CLLocationCoordinate2D(
|
|
253
|
-
latitude: camera.center?.latitude ?? mapView.camera.target.latitude,
|
|
254
|
-
longitude: camera.center?.longitude ?? mapView.camera.target.longitude
|
|
255
|
-
)
|
|
256
|
-
|
|
257
|
-
let cam = GMSCameraPosition.camera(
|
|
258
|
-
withTarget: target,
|
|
259
|
-
zoom: zoom,
|
|
260
|
-
bearing: bearing,
|
|
261
|
-
viewingAngle: viewingAngle
|
|
262
|
-
)
|
|
266
|
+
func setCamera(camera: GMSCameraPosition, animated: Bool, durationMS: Double) {
|
|
263
267
|
if animated {
|
|
264
268
|
withCATransaction(
|
|
265
269
|
disableActions: false,
|
|
266
270
|
duration: durationMS / 1000.0
|
|
267
271
|
) {
|
|
268
|
-
mapView
|
|
272
|
+
mapView?.animate(to: camera)
|
|
269
273
|
}
|
|
270
274
|
} else {
|
|
271
|
-
let update = GMSCameraUpdate.setCamera(
|
|
272
|
-
mapView
|
|
275
|
+
let update = GMSCameraUpdate.setCamera(camera)
|
|
276
|
+
mapView?.moveCamera(update)
|
|
273
277
|
}
|
|
274
278
|
}
|
|
275
279
|
|
|
@@ -315,10 +319,10 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
315
319
|
disableActions: false,
|
|
316
320
|
duration: durationMS / 1000.0
|
|
317
321
|
) {
|
|
318
|
-
mapView
|
|
322
|
+
mapView?.animate(with: update)
|
|
319
323
|
}
|
|
320
324
|
} else {
|
|
321
|
-
mapView
|
|
325
|
+
mapView?.moveCamera(update)
|
|
322
326
|
}
|
|
323
327
|
}
|
|
324
328
|
|
|
@@ -427,19 +431,50 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
427
431
|
pendingPolygons.removeAll()
|
|
428
432
|
}
|
|
429
433
|
|
|
430
|
-
|
|
434
|
+
@MainActor
|
|
435
|
+
func addCircle(id: String, circle: GMSCircle) {
|
|
436
|
+
if mapView == nil {
|
|
437
|
+
pendingCircles.append((id, circle))
|
|
438
|
+
return
|
|
439
|
+
}
|
|
440
|
+
if let old = circlesById.removeValue(forKey: id) { old.map = nil }
|
|
441
|
+
addCircleInternal(id: id, circle: circle)
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
@MainActor
|
|
445
|
+
private func addCircleInternal(id: String, circle: GMSCircle) {
|
|
446
|
+
circle.map = mapView
|
|
447
|
+
circle.userData = id
|
|
448
|
+
circlesById[id] = circle
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
@MainActor
|
|
452
|
+
func updateCircle(id: String, block: @escaping (GMSCircle) -> Void) {
|
|
453
|
+
guard let circle = circlesById[id] else { return }
|
|
454
|
+
block(circle)
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
@MainActor
|
|
458
|
+
func removeCircle(id: String) {
|
|
459
|
+
if let circle = circlesById.removeValue(forKey: id) { circle.map = nil }
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
@MainActor
|
|
463
|
+
func clearCircles() {
|
|
464
|
+
circlesById.values.forEach { $0.map = nil }
|
|
465
|
+
circlesById.removeAll()
|
|
466
|
+
pendingCircles.removeAll()
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
func deinitInternal() {
|
|
431
470
|
markerOptions.cancelAllIconTasks()
|
|
432
471
|
clearMarkers()
|
|
433
472
|
clearPolylines()
|
|
434
473
|
clearPolygons()
|
|
474
|
+
clearCircles()
|
|
435
475
|
locationHandler.stop()
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
@MainActor
|
|
440
|
-
func clearMap() {
|
|
441
|
-
mapView.clear()
|
|
442
|
-
mapView.delegate = nil
|
|
476
|
+
mapView?.clear()
|
|
477
|
+
mapView?.delegate = nil
|
|
443
478
|
mapView = nil
|
|
444
479
|
}
|
|
445
480
|
|
|
@@ -457,7 +492,7 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
457
492
|
super.didMoveToWindow()
|
|
458
493
|
if window != nil {
|
|
459
494
|
if mapView != nil && mapReady {
|
|
460
|
-
|
|
495
|
+
onMapReady?(true)
|
|
461
496
|
}
|
|
462
497
|
locationHandler.start()
|
|
463
498
|
} else {
|
|
@@ -467,7 +502,7 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
467
502
|
|
|
468
503
|
deinit {
|
|
469
504
|
NotificationCenter.default.removeObserver(self)
|
|
470
|
-
|
|
505
|
+
deinitInternal()
|
|
471
506
|
}
|
|
472
507
|
|
|
473
508
|
func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
|
|
@@ -504,11 +539,11 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
504
539
|
|
|
505
540
|
func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
|
|
506
541
|
if let last = lastSubmittedCameraPosition,
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
542
|
+
last.target.latitude == position.target.latitude,
|
|
543
|
+
last.target.longitude == position.target.longitude,
|
|
544
|
+
last.zoom == position.zoom,
|
|
545
|
+
last.bearing == position.bearing,
|
|
546
|
+
last.viewingAngle == position.viewingAngle {
|
|
512
547
|
return
|
|
513
548
|
}
|
|
514
549
|
let visibleRegion = mapView.projection.visibleRegion()
|
|
@@ -576,10 +611,11 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
576
611
|
didTapAt coordinate: CLLocationCoordinate2D
|
|
577
612
|
) {
|
|
578
613
|
onMapPress?(
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
614
|
+
RNLatLng(
|
|
615
|
+
latitude: coordinate.latitude,
|
|
616
|
+
longitude: coordinate.longitude
|
|
617
|
+
)
|
|
618
|
+
)
|
|
583
619
|
}
|
|
584
620
|
|
|
585
621
|
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
|
|
@@ -587,4 +623,23 @@ final class GoogleMapsNitroViewImpl: UIView, GMSMapViewDelegate {
|
|
|
587
623
|
onMarkerPress?(id)
|
|
588
624
|
return true
|
|
589
625
|
}
|
|
626
|
+
|
|
627
|
+
func mapView(_ mapView: GMSMapView, didTap overlay: GMSOverlay) {
|
|
628
|
+
switch overlay {
|
|
629
|
+
case let circle as GMSCircle:
|
|
630
|
+
let id = (circle.userData as? String) ?? "unknown"
|
|
631
|
+
onCirclePress?(id)
|
|
632
|
+
|
|
633
|
+
case let polygon as GMSPolygon:
|
|
634
|
+
let id = (polygon.userData as? String) ?? "unknown"
|
|
635
|
+
onPolygonPress?(id)
|
|
636
|
+
|
|
637
|
+
case let polyline as GMSPolyline:
|
|
638
|
+
let id = (polyline.userData as? String) ?? "unknown"
|
|
639
|
+
onPolylinePress?(id)
|
|
640
|
+
|
|
641
|
+
default:
|
|
642
|
+
break
|
|
643
|
+
}
|
|
644
|
+
}
|
|
590
645
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import GoogleMaps
|
|
2
|
+
|
|
3
|
+
class MapCircleOptions {
|
|
4
|
+
|
|
5
|
+
func buildCircle(_ c: RNCircle) -> GMSCircle {
|
|
6
|
+
let circle = GMSCircle()
|
|
7
|
+
circle.position = CLLocationCoordinate2D(
|
|
8
|
+
latitude: c.center.latitude,
|
|
9
|
+
longitude: c.center.longitude
|
|
10
|
+
)
|
|
11
|
+
if let r = c.radius { circle.radius = r }
|
|
12
|
+
if let fc = c.fillColor?.toUIColor() { circle.fillColor = fc }
|
|
13
|
+
if let sc = c.strokeColor?.toUIColor() { circle.strokeColor = sc }
|
|
14
|
+
if let sw = c.strokeWidth { circle.strokeWidth = CGFloat(sw) }
|
|
15
|
+
if let pr = c.pressable { circle.isTappable = pr }
|
|
16
|
+
if let zi = c.zIndex { circle.zIndex = Int32(zi) }
|
|
17
|
+
|
|
18
|
+
return circle
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
extension RNCircle {
|
|
23
|
+
func updateCircle(_ next: RNCircle, _ c: GMSCircle) {
|
|
24
|
+
c.position = CLLocationCoordinate2D(
|
|
25
|
+
latitude: next.center.latitude,
|
|
26
|
+
longitude: next.center.longitude
|
|
27
|
+
)
|
|
28
|
+
if let r = next.radius { c.radius = r }
|
|
29
|
+
if let fc = next.fillColor?.toUIColor() { c.fillColor = fc }
|
|
30
|
+
if let sc = next.strokeColor?.toUIColor() { c.strokeColor = sc }
|
|
31
|
+
if let sw = next.strokeWidth { c.strokeWidth = CGFloat(sw) }
|
|
32
|
+
if let pr = next.pressable { c.isTappable = pr }
|
|
33
|
+
if let zi = next.zIndex { c.zIndex = Int32(zi) }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
func circleEquals(_ b: RNCircle) -> Bool {
|
|
37
|
+
zIndex == b.zIndex && pressable == b.pressable
|
|
38
|
+
&& center.latitude == b.center.latitude
|
|
39
|
+
&& center.longitude == b.center.longitude && radius == b.radius
|
|
40
|
+
&& strokeWidth == b.strokeWidth && strokeColor == b.strokeColor
|
|
41
|
+
&& fillColor == b.fillColor
|
|
42
|
+
}
|
|
43
|
+
}
|
package/ios/MapMarker.swift
CHANGED
|
@@ -18,7 +18,6 @@ final class MapMarkerOptions {
|
|
|
18
18
|
longitude: m.coordinate.longitude
|
|
19
19
|
)
|
|
20
20
|
)
|
|
21
|
-
marker.zIndex = Int32(m.zIndex)
|
|
22
21
|
marker.userData = m.id
|
|
23
22
|
marker.tracksViewChanges = true
|
|
24
23
|
marker.icon = icon
|
|
@@ -26,6 +25,7 @@ final class MapMarkerOptions {
|
|
|
26
25
|
x: m.anchor?.x ?? 0.5,
|
|
27
26
|
y: m.anchor?.y ?? 0.5
|
|
28
27
|
)
|
|
28
|
+
if let zi = m.zIndex { marker.zIndex = Int32(zi) }
|
|
29
29
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { [weak marker] in
|
|
30
30
|
marker?.tracksViewChanges = false
|
|
31
31
|
}
|
|
@@ -71,24 +71,17 @@ final class MapMarkerOptions {
|
|
|
71
71
|
|
|
72
72
|
@MainActor
|
|
73
73
|
func updateMarker(_ prev: RNMarker, _ next: RNMarker, _ m: GMSMarker) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
longitude: next.coordinate.longitude
|
|
79
|
-
)
|
|
80
|
-
}
|
|
74
|
+
m.position = CLLocationCoordinate2D(
|
|
75
|
+
latitude: next.coordinate.latitude,
|
|
76
|
+
longitude: next.coordinate.longitude
|
|
77
|
+
)
|
|
81
78
|
|
|
82
|
-
if
|
|
83
|
-
m.zIndex = Int32(next.zIndex)
|
|
84
|
-
}
|
|
79
|
+
if let zi = next.zIndex { m.zIndex = Int32(zi) }
|
|
85
80
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
)
|
|
91
|
-
}
|
|
81
|
+
m.groundAnchor = CGPoint(
|
|
82
|
+
x: next.anchor?.x ?? 0.5,
|
|
83
|
+
y: next.anchor?.y ?? 0.5
|
|
84
|
+
)
|
|
92
85
|
|
|
93
86
|
if !prev.markerStyleEquals(next) {
|
|
94
87
|
buildIconAsync(next.id, next) { img in
|
package/ios/MapPolygon.swift
CHANGED
|
@@ -13,7 +13,8 @@ class MapPolygonOptions {
|
|
|
13
13
|
if let fc = p.fillColor?.toUIColor() { pg.fillColor = fc }
|
|
14
14
|
if let sc = p.strokeColor?.toUIColor() { pg.strokeColor = sc }
|
|
15
15
|
if let sw = p.strokeWidth { pg.strokeWidth = CGFloat(sw) }
|
|
16
|
-
pg.
|
|
16
|
+
if let pr = p.pressable { pg.isTappable = pr }
|
|
17
|
+
if let zi = p.zIndex { pg.zIndex = Int32(zi) }
|
|
17
18
|
return pg
|
|
18
19
|
}
|
|
19
20
|
}
|
|
@@ -34,15 +35,17 @@ extension RNPolygon {
|
|
|
34
35
|
if let fc = next.fillColor?.toUIColor() { pg.fillColor = fc }
|
|
35
36
|
if let sc = next.strokeColor?.toUIColor() { pg.strokeColor = sc }
|
|
36
37
|
if let sw = next.strokeWidth { pg.strokeWidth = CGFloat(sw) }
|
|
37
|
-
pg.
|
|
38
|
+
if let pr = next.pressable { pg.isTappable = pr }
|
|
39
|
+
if let zi = next.zIndex { pg.zIndex = Int32(zi) }
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
func polygonEquals(_ b: RNPolygon) -> Bool {
|
|
41
43
|
guard zIndex == b.zIndex,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
pressable == b.pressable,
|
|
45
|
+
strokeWidth == b.strokeWidth,
|
|
46
|
+
fillColor == b.fillColor,
|
|
47
|
+
strokeColor == b.strokeColor,
|
|
48
|
+
coordinates.count == b.coordinates.count
|
|
46
49
|
else { return false }
|
|
47
50
|
for i in 0..<coordinates.count {
|
|
48
51
|
if coordinates[i].latitude != b.coordinates[i].latitude
|
package/ios/MapPolyline.swift
CHANGED
|
@@ -11,13 +11,14 @@ class MapPolylineOptions {
|
|
|
11
11
|
let pl = GMSPolyline(path: path)
|
|
12
12
|
if let w = p.width { pl.strokeWidth = CGFloat(w) }
|
|
13
13
|
if let c = p.color?.toUIColor() { pl.strokeColor = c }
|
|
14
|
-
pl.zIndex = Int32(p.zIndex)
|
|
15
14
|
if let cap = p.lineCap {
|
|
16
15
|
/// pl.lineCap = mapLineCap(cap)
|
|
17
16
|
}
|
|
18
17
|
if let join = p.lineJoin {
|
|
19
18
|
/// pl.strokeJoin = mapLineJoin(join)
|
|
20
19
|
}
|
|
20
|
+
if let pr = p.pressable { pl.isTappable = pr }
|
|
21
|
+
if let zi = p.zIndex { pl.zIndex = Int32(zi) }
|
|
21
22
|
return pl
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -61,16 +62,17 @@ extension RNPolyline {
|
|
|
61
62
|
if let c = next.color?.toUIColor() {
|
|
62
63
|
pl.strokeColor = c
|
|
63
64
|
}
|
|
64
|
-
pl.
|
|
65
|
+
if let pr = next.pressable { pl.isTappable = pr }
|
|
66
|
+
if let zi = next.zIndex { pl.zIndex = Int32(zi) }
|
|
65
67
|
}
|
|
66
68
|
|
|
67
69
|
func polylineEquals(_ b: RNPolyline) -> Bool {
|
|
68
70
|
guard zIndex == b.zIndex,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
(width ?? 0) == (b.width ?? 0),
|
|
72
|
+
lineCap == b.lineCap,
|
|
73
|
+
lineJoin == b.lineJoin,
|
|
74
|
+
color == b.color,
|
|
75
|
+
coordinates.count == b.coordinates.count
|
|
74
76
|
else { return false }
|
|
75
77
|
for i in 0..<coordinates.count {
|
|
76
78
|
if coordinates[i].latitude != b.coordinates[i].latitude
|
|
@@ -14,7 +14,7 @@ final class PermissionHandler: NSObject, CLLocationManagerDelegate {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
func requestLocationPermission()
|
|
17
|
-
|
|
17
|
+
-> NitroModules.Promise<RNLocationPermissionResult> {
|
|
18
18
|
let promise = NitroModules.Promise<RNLocationPermissionResult>()
|
|
19
19
|
|
|
20
20
|
let status = manager.authorizationStatus
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
final class
|
|
1
|
+
final class RNGoogleMapsPlusModule: HybridRNGoogleMapsPlusModuleSpec {
|
|
2
2
|
private let permissionHandler: PermissionHandler
|
|
3
3
|
private let locationHandler: LocationHandler
|
|
4
4
|
|
|
@@ -16,7 +16,7 @@ final class HybridGoogleMapsNitroModule: HybridGoogleMapsNitroModuleSpec {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
func requestLocationPermission()
|
|
19
|
-
|
|
19
|
+
-> NitroModules.Promise<RNLocationPermissionResult> {
|
|
20
20
|
return permissionHandler.requestLocationPermission()
|
|
21
21
|
}
|
|
22
22
|
|