react-native-google-maps-plus 1.0.2 → 1.1.0-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/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +359 -139
- package/android/src/main/java/com/rngooglemapsplus/LocationHandler.kt +44 -44
- package/android/src/main/java/com/rngooglemapsplus/MapCircleBuilder.kt +19 -0
- package/android/src/main/java/com/rngooglemapsplus/{MapMarker.kt → MapMarkerBuilder.kt} +7 -6
- package/android/src/main/java/com/rngooglemapsplus/{MapPolygon.kt → MapPolygonBuilder.kt} +4 -18
- package/android/src/main/java/com/rngooglemapsplus/{MapPolyline.kt → MapPolylineBuilder.kt.kt} +4 -19
- package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +145 -129
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNCameraExtension.kt +19 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNLocationPriorityExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNMapCircleExtension.kt +14 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolygonExtension.kt +20 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNPolylineExtension.kt +21 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNUserInterfaceExtension.kt +12 -0
- package/android/src/main/java/com/rngooglemapsplus/{Color.kt → extensions/StringExtension.kt} +1 -1
- package/android/src/main/java/com/rngooglemapsplus/extensions/ThrowableExtension.kt +38 -0
- package/ios/GoogleMapViewImpl.swift +348 -150
- package/ios/LocationHandler.swift +29 -69
- package/ios/MapCircleBuilder.swift +20 -0
- package/ios/{MapMarker.swift → MapMarkerBuilder.swift} +11 -42
- package/ios/MapPolygonBuilder.swift +20 -0
- package/ios/MapPolylineBuilder.swift +24 -0
- package/ios/PermissionHandler.swift +1 -1
- package/ios/RNGoogleMapsPlusModule.swift +1 -1
- package/ios/RNGoogleMapsPlusView.swift +159 -168
- package/ios/extensions/RNCamera+Extension.swift +22 -0
- package/ios/extensions/RNCircle+Extension.swift +24 -0
- package/ios/extensions/RNIOSLocationAccuracy+Extensions.swift +19 -0
- package/ios/extensions/RNMarker+Extension.swift +24 -0
- package/ios/{MapPolygon.swift → extensions/RNPolygon+Extension.swift.swift} +7 -23
- package/ios/extensions/RNPolyline+Extension.swift.swift +62 -0
- package/ios/extensions/RNUserInterface+Extension.swift +16 -0
- package/ios/{Color.swift → extensions/String+Extensions.swift} +20 -20
- package/lib/module/types.js +14 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +21 -12
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +59 -3
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +233 -69
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +40 -22
- package/nitrogen/generated/android/c++/JRNAndroidLocationConfig.hpp +63 -0
- package/nitrogen/generated/android/c++/JRNAndroidLocationPriority.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNCircle.hpp +84 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationAccuracy.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNIOSLocationConfig.hpp +59 -0
- package/nitrogen/generated/android/c++/JRNInitialProps.hpp +66 -0
- package/nitrogen/generated/android/c++/JRNLocationConfig.hpp +65 -0
- package/nitrogen/generated/android/c++/JRNMapType.hpp +68 -0
- package/nitrogen/generated/android/c++/JRNMapUiSettings.hpp +93 -0
- package/nitrogen/generated/android/c++/JRNMarker.hpp +4 -4
- package/nitrogen/generated/android/c++/JRNPolygon.hpp +8 -4
- package/nitrogen/generated/android/c++/JRNPolyline.hpp +8 -4
- package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +40 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +89 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationConfig.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNAndroidLocationPriority.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNCircle.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationAccuracy.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNIOSLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNInitialProps.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNLocationConfig.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapType.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMapUiSettings.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNMarker.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNPolygon.kt +4 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNPolyline.kt +4 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/views/HybridRNGoogleMapsPlusViewManager.kt +7 -1
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +296 -45
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +27 -0
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +131 -37
- package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +61 -16
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +20 -11
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +378 -45
- package/nitrogen/generated/ios/swift/RNAndroidLocationConfig.swift +93 -0
- package/nitrogen/generated/ios/swift/RNAndroidLocationPriority.swift +48 -0
- package/nitrogen/generated/ios/swift/RNCircle.swift +198 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationAccuracy.swift +48 -0
- package/nitrogen/generated/ios/swift/RNIOSLocationConfig.swift +70 -0
- package/nitrogen/generated/ios/swift/RNInitialProps.swift +107 -0
- package/nitrogen/generated/ios/swift/RNLocationConfig.swift +84 -0
- package/nitrogen/generated/ios/swift/RNMapType.swift +52 -0
- package/nitrogen/generated/ios/swift/RNMapUiSettings.swift +277 -0
- package/nitrogen/generated/ios/swift/RNMarker.swift +17 -5
- package/nitrogen/generated/ios/swift/RNPolygon.swift +40 -5
- package/nitrogen/generated/ios/swift/RNPolyline.swift +40 -5
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +20 -2
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +59 -26
- package/nitrogen/generated/shared/c++/RNAndroidLocationConfig.hpp +77 -0
- package/nitrogen/generated/shared/c++/RNAndroidLocationPriority.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNCircle.hpp +98 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationAccuracy.hpp +64 -0
- package/nitrogen/generated/shared/c++/RNIOSLocationConfig.hpp +73 -0
- package/nitrogen/generated/shared/c++/RNInitialProps.hpp +78 -0
- package/nitrogen/generated/shared/c++/RNLocationConfig.hpp +76 -0
- package/nitrogen/generated/shared/c++/RNMapType.hpp +88 -0
- package/nitrogen/generated/shared/c++/RNMapUiSettings.hpp +107 -0
- package/nitrogen/generated/shared/c++/RNMarker.hpp +6 -6
- package/nitrogen/generated/shared/c++/RNPolygon.hpp +10 -6
- package/nitrogen/generated/shared/c++/RNPolyline.hpp +10 -6
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +138 -30
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +27 -13
- package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +10 -1
- package/package.json +5 -5
- package/src/RNGoogleMapsPlusView.nitro.ts +25 -11
- package/src/types.ts +67 -3
- package/ios/MapPolyline.swift +0 -83
|
@@ -2,43 +2,43 @@ import CoreLocation
|
|
|
2
2
|
import Foundation
|
|
3
3
|
import UIKit
|
|
4
4
|
|
|
5
|
+
private let kCLLocationAccuracyDefault: CLLocationAccuracy =
|
|
6
|
+
kCLLocationAccuracyBest
|
|
7
|
+
private let kCLDistanceFilterNoneDefault: CLLocationDistance =
|
|
8
|
+
kCLDistanceFilterNone
|
|
9
|
+
|
|
5
10
|
final class LocationHandler: NSObject, CLLocationManagerDelegate {
|
|
6
11
|
|
|
7
12
|
private let manager = CLLocationManager()
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
|
|
14
|
+
var desiredAccuracy: CLLocationAccuracy? = kCLLocationAccuracyDefault {
|
|
15
|
+
didSet {
|
|
16
|
+
if let desiredAccuracy = desiredAccuracy {
|
|
17
|
+
manager.desiredAccuracy = desiredAccuracy
|
|
18
|
+
} else {
|
|
19
|
+
manager.desiredAccuracy = kCLLocationAccuracyBest
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var distanceFilterMeters: CLLocationDistance? = kCLDistanceFilterNoneDefault {
|
|
25
|
+
didSet {
|
|
26
|
+
if let distanceFilterMeters = distanceFilterMeters {
|
|
27
|
+
manager.distanceFilter = distanceFilterMeters
|
|
28
|
+
} else {
|
|
29
|
+
manager.distanceFilter = kCLDistanceFilterNone
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
12
33
|
|
|
13
34
|
var onUpdate: ((CLLocation) -> Void)?
|
|
14
35
|
var onError: ((_ error: RNLocationErrorCode) -> Void)?
|
|
15
36
|
|
|
16
|
-
private var lastEmit: Date?
|
|
17
|
-
|
|
18
37
|
override init() {
|
|
19
38
|
super.init()
|
|
20
39
|
manager.delegate = self
|
|
21
40
|
manager.pausesLocationUpdatesAutomatically = true
|
|
22
41
|
manager.activityType = .other
|
|
23
|
-
applyPriority()
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
func setPriority(_ priority: Int) {
|
|
27
|
-
self.priority = priority
|
|
28
|
-
applyPriority()
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
func setInterval(_ seconds: Int) {
|
|
32
|
-
self.interval = max(0, TimeInterval(seconds))
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
func setFastestInterval(_ seconds: Int) {
|
|
36
|
-
self.minUpdateInterval = max(0, TimeInterval(seconds))
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
func setDistanceFilter(_ meters: Double) {
|
|
40
|
-
self.distanceFilterMeters = meters >= 0 ? meters : kCLDistanceFilterNone
|
|
41
|
-
manager.distanceFilter = distanceFilterMeters
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
func showLocationDialog() {
|
|
@@ -110,36 +110,13 @@ final class LocationHandler: NSObject, CLLocationManagerDelegate {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
private func applyPriority() {
|
|
114
|
-
guard let p = Priority(rawValue: priority) else {
|
|
115
|
-
manager.desiredAccuracy = kCLLocationAccuracyBest
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
switch p {
|
|
119
|
-
case .highAccuracy:
|
|
120
|
-
manager.desiredAccuracy = kCLLocationAccuracyBest
|
|
121
|
-
case .balanced:
|
|
122
|
-
manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
|
|
123
|
-
case .lowPower:
|
|
124
|
-
manager.desiredAccuracy = kCLLocationAccuracyHundredMeters
|
|
125
|
-
case .passive:
|
|
126
|
-
manager.desiredAccuracy = kCLLocationAccuracyKilometer
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
113
|
private func startUpdates() {
|
|
131
|
-
manager.
|
|
114
|
+
manager.desiredAccuracy = desiredAccuracy ?? kCLLocationAccuracyDefault
|
|
115
|
+
manager.distanceFilter =
|
|
116
|
+
distanceFilterMeters ?? kCLDistanceFilterNoneDefault
|
|
132
117
|
manager.startUpdatingLocation()
|
|
133
118
|
}
|
|
134
119
|
|
|
135
|
-
private func shouldEmit(now: Date) -> Bool {
|
|
136
|
-
if let last = lastEmit {
|
|
137
|
-
let delta = now.timeIntervalSince(last)
|
|
138
|
-
if delta < minUpdateInterval { return false }
|
|
139
|
-
}
|
|
140
|
-
return true
|
|
141
|
-
}
|
|
142
|
-
|
|
143
120
|
func locationManager(
|
|
144
121
|
_ manager: CLLocationManager,
|
|
145
122
|
didFailWithError error: Error
|
|
@@ -166,12 +143,7 @@ final class LocationHandler: NSObject, CLLocationManagerDelegate {
|
|
|
166
143
|
didUpdateLocations locations: [CLLocation]
|
|
167
144
|
) {
|
|
168
145
|
guard let loc = locations.last else { return }
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if shouldEmit(now: now) {
|
|
172
|
-
lastEmit = now
|
|
173
|
-
onUpdate?(loc)
|
|
174
|
-
}
|
|
146
|
+
onUpdate?(loc)
|
|
175
147
|
}
|
|
176
148
|
|
|
177
149
|
private static func topMostViewController() -> UIViewController? {
|
|
@@ -191,15 +163,3 @@ final class LocationHandler: NSObject, CLLocationManagerDelegate {
|
|
|
191
163
|
}
|
|
192
164
|
|
|
193
165
|
}
|
|
194
|
-
|
|
195
|
-
extension LocationHandler {
|
|
196
|
-
enum Priority: Int {
|
|
197
|
-
case highAccuracy = 100
|
|
198
|
-
/// Android: PRIORITY_BALANCED_POWER_ACCURACY
|
|
199
|
-
case balanced = 102
|
|
200
|
-
/// Android: PRIORITY_LOW_POWER
|
|
201
|
-
case lowPower = 104
|
|
202
|
-
/// Android: PRIORITY_PASSIVE
|
|
203
|
-
case passive = 105
|
|
204
|
-
}
|
|
205
|
-
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import GoogleMaps
|
|
2
|
+
|
|
3
|
+
final class MapCircleBuilder {
|
|
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
|
+
}
|
|
@@ -2,7 +2,7 @@ import GoogleMaps
|
|
|
2
2
|
import SVGKit
|
|
3
3
|
import UIKit
|
|
4
4
|
|
|
5
|
-
final class
|
|
5
|
+
final class MapMarkerBuilder {
|
|
6
6
|
private let iconCache = NSCache<NSString, UIImage>()
|
|
7
7
|
private var tasks: [String: Task<Void, Never>] = [:]
|
|
8
8
|
private let queue = DispatchQueue(
|
|
@@ -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
|
|
@@ -181,27 +174,3 @@ final class MapMarkerOptions {
|
|
|
181
174
|
}
|
|
182
175
|
|
|
183
176
|
}
|
|
184
|
-
|
|
185
|
-
extension RNMarker {
|
|
186
|
-
func markerEquals(_ b: RNMarker) -> Bool {
|
|
187
|
-
id == b.id && zIndex == b.zIndex
|
|
188
|
-
&& coordinate.latitude == b.coordinate.latitude
|
|
189
|
-
&& coordinate.longitude == b.coordinate.longitude
|
|
190
|
-
&& anchor?.x == b.anchor?.x && anchor?.y == b.anchor?.y
|
|
191
|
-
&& markerStyleEquals(b)
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
func markerStyleEquals(_ b: RNMarker) -> Bool {
|
|
195
|
-
width == b.width && height == b.height
|
|
196
|
-
&& iconSvg == b.iconSvg
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
func styleHash() -> NSString {
|
|
200
|
-
var hasher = Hasher()
|
|
201
|
-
hasher.combine(width)
|
|
202
|
-
hasher.combine(height)
|
|
203
|
-
hasher.combine(iconSvg)
|
|
204
|
-
return String(hasher.finalize()) as NSString
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import GoogleMaps
|
|
2
|
+
|
|
3
|
+
final class MapPolygonBuilder {
|
|
4
|
+
|
|
5
|
+
func buildPolygon(_ p: RNPolygon) -> GMSPolygon {
|
|
6
|
+
let path = GMSMutablePath()
|
|
7
|
+
p.coordinates.forEach {
|
|
8
|
+
path.add(
|
|
9
|
+
CLLocationCoordinate2D(latitude: $0.latitude, longitude: $0.longitude)
|
|
10
|
+
)
|
|
11
|
+
}
|
|
12
|
+
let pg = GMSPolygon(path: path)
|
|
13
|
+
if let fc = p.fillColor?.toUIColor() { pg.fillColor = fc }
|
|
14
|
+
if let sc = p.strokeColor?.toUIColor() { pg.strokeColor = sc }
|
|
15
|
+
if let sw = p.strokeWidth { pg.strokeWidth = CGFloat(sw) }
|
|
16
|
+
if let pr = p.pressable { pg.isTappable = pr }
|
|
17
|
+
if let zi = p.zIndex { pg.zIndex = Int32(zi) }
|
|
18
|
+
return pg
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import GoogleMaps
|
|
2
|
+
|
|
3
|
+
final class MapPolylineBuilder {
|
|
4
|
+
func buildPolyline(_ p: RNPolyline) -> GMSPolyline {
|
|
5
|
+
let path = GMSMutablePath()
|
|
6
|
+
p.coordinates.forEach {
|
|
7
|
+
path.add(
|
|
8
|
+
CLLocationCoordinate2D(latitude: $0.latitude, longitude: $0.longitude)
|
|
9
|
+
)
|
|
10
|
+
}
|
|
11
|
+
let pl = GMSPolyline(path: path)
|
|
12
|
+
if let w = p.width { pl.strokeWidth = CGFloat(w) }
|
|
13
|
+
if let c = p.color?.toUIColor() { pl.strokeColor = c }
|
|
14
|
+
if let cap = p.lineCap {
|
|
15
|
+
/// pl.lineCap = mapLineCap(cap)
|
|
16
|
+
}
|
|
17
|
+
if let join = p.lineJoin {
|
|
18
|
+
/// pl.strokeJoin = mapLineJoin(join)
|
|
19
|
+
}
|
|
20
|
+
if let pr = p.pressable { pl.isTappable = pr }
|
|
21
|
+
if let zi = p.zIndex { pl.zIndex = Int32(zi) }
|
|
22
|
+
return pl
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -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
|
|
@@ -16,7 +16,7 @@ final class RNGoogleMapsPlusModule: HybridRNGoogleMapsPlusModuleSpec {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
func requestLocationPermission()
|
|
19
|
-
|
|
19
|
+
-> NitroModules.Promise<RNLocationPermissionResult> {
|
|
20
20
|
return permissionHandler.requestLocationPermission()
|
|
21
21
|
}
|
|
22
22
|
|