react-native-google-maps-plus 1.1.0-dev.3 → 1.1.0-dev.5
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 +7 -5
- package/RNGoogleMapsPlus.podspec +2 -1
- package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +54 -0
- package/android/src/main/java/com/rngooglemapsplus/MapHeatmapBuilder.kt +31 -0
- package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +16 -0
- package/android/src/main/java/com/rngooglemapsplus/extensions/RNHeatmapPointExtension.kt +9 -0
- package/ios/GoogleMapViewImpl.swift +38 -4
- package/ios/MapHeatmapBuilder.swift +27 -0
- package/ios/RNGoogleMapsPlusView.swift +22 -0
- package/ios/extensions/RNHeatmap+Extension.swift +16 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +2 -1
- package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +19 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +38 -0
- package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +2 -0
- package/nitrogen/generated/android/c++/JRNHeatmap.hpp +100 -0
- package/nitrogen/generated/android/c++/JRNHeatmapGradient.hpp +89 -0
- package/nitrogen/generated/android/c++/JRNHeatmapPoint.hpp +61 -0
- package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +4 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +6 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNHeatmap.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNHeatmapGradient.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNHeatmapPoint.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/views/HybridRNGoogleMapsPlusViewManager.kt +1 -1
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.cpp +13 -13
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +116 -39
- package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +9 -0
- package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +17 -1
- package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +5 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +1 -0
- package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +110 -42
- package/nitrogen/generated/ios/swift/RNCamera.swift +8 -1
- package/nitrogen/generated/ios/swift/RNHeatmap.swift +180 -0
- package/nitrogen/generated/ios/swift/RNHeatmapGradient.swift +81 -0
- package/nitrogen/generated/ios/swift/RNHeatmapPoint.swift +57 -0
- package/nitrogen/generated/ios/swift/RNInitialProps.swift +8 -1
- package/nitrogen/generated/ios/swift/RNLocationConfig.swift +16 -2
- package/nitrogen/generated/ios/swift/RNMarker.swift +16 -2
- package/nitrogen/generated/ios/swift/RNPolygon.swift +15 -11
- package/nitrogen/generated/ios/swift/RNPolyline.swift +15 -11
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +5 -0
- package/nitrogen/generated/shared/c++/RNHeatmap.hpp +98 -0
- package/nitrogen/generated/shared/c++/RNHeatmapGradient.hpp +76 -0
- package/nitrogen/generated/shared/c++/RNHeatmapPoint.hpp +75 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +12 -0
- package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +2 -0
- package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +1 -0
- package/package.json +2 -2
- package/src/RNGoogleMapsPlusView.nitro.ts +2 -0
- package/src/types.ts +22 -0
package/README.md
CHANGED
|
@@ -22,13 +22,15 @@ React-native wrapper for android & IOS google maps sdk
|
|
|
22
22
|
yarn add react-native-google-maps-plus react-native-nitro-modules
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Dependencies
|
|
25
|
+
# Dependencies
|
|
26
26
|
|
|
27
|
-
This package builds on native SVG rendering
|
|
27
|
+
This package builds on native libraries for SVG rendering and Google Maps integration:
|
|
28
28
|
|
|
29
|
-
iOS
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
- **iOS**: [SVGKit](https://github.com/SVGKit/SVGKit)
|
|
30
|
+
- **Android**: [AndroidSVG](https://bigbadaboom.github.io/androidsvg/)
|
|
31
|
+
- **iOS Maps SDK**: [Google Maps SDK for iOS](https://developers.google.com/maps/documentation/ios-sdk)
|
|
32
|
+
- **Android Maps SDK**: [Google Maps SDK for Android](https://developers.google.com/maps/documentation/android-sdk)
|
|
33
|
+
- **Maps Utility Libraries**: [Google Maps Utils for iOS](https://developers.google.com/maps/documentation/ios-sdk/utility) and [Google Maps Utils for Android](https://developers.google.com/maps/documentation/android-sdk/utility)
|
|
32
34
|
|
|
33
35
|
These are automatically linked when you install the package, but you may need to clean/rebuild your native projects after first install.
|
|
34
36
|
|
package/RNGoogleMapsPlus.podspec
CHANGED
|
@@ -26,7 +26,8 @@ Pod::Spec.new do |s|
|
|
|
26
26
|
s.dependency 'React-jsi'
|
|
27
27
|
s.dependency 'React-callinvoker'
|
|
28
28
|
|
|
29
|
-
s.dependency 'GoogleMaps', '10.
|
|
29
|
+
s.dependency 'GoogleMaps', '10.4.0'
|
|
30
|
+
s.dependency 'Google-Maps-iOS-Utils', '6.1.3'
|
|
30
31
|
s.dependency 'SVGKit', '3.0.0'
|
|
31
32
|
|
|
32
33
|
load 'nitrogen/generated/ios/RNGoogleMapsPlus+autolinking.rb'
|
|
@@ -25,6 +25,8 @@ import com.google.android.gms.maps.model.Polygon
|
|
|
25
25
|
import com.google.android.gms.maps.model.PolygonOptions
|
|
26
26
|
import com.google.android.gms.maps.model.Polyline
|
|
27
27
|
import com.google.android.gms.maps.model.PolylineOptions
|
|
28
|
+
import com.google.android.gms.maps.model.TileOverlay
|
|
29
|
+
import com.google.android.gms.maps.model.TileOverlayOptions
|
|
28
30
|
import com.rngooglemapsplus.extensions.toGooglePriority
|
|
29
31
|
import com.rngooglemapsplus.extensions.toLocationErrorCode
|
|
30
32
|
|
|
@@ -52,11 +54,13 @@ class GoogleMapsViewImpl(
|
|
|
52
54
|
private val pendingPolylines = mutableListOf<Pair<String, PolylineOptions>>()
|
|
53
55
|
private val pendingPolygons = mutableListOf<Pair<String, PolygonOptions>>()
|
|
54
56
|
private val pendingCircles = mutableListOf<Pair<String, CircleOptions>>()
|
|
57
|
+
private val pendingHeatmaps = mutableListOf<Pair<String, TileOverlayOptions>>()
|
|
55
58
|
|
|
56
59
|
private val markersById = mutableMapOf<String, Marker>()
|
|
57
60
|
private val polylinesById = mutableMapOf<String, Polyline>()
|
|
58
61
|
private val polygonsById = mutableMapOf<String, Polygon>()
|
|
59
62
|
private val circlesById = mutableMapOf<String, Circle>()
|
|
63
|
+
private val heatmapsById = mutableMapOf<String, TileOverlay>()
|
|
60
64
|
|
|
61
65
|
private var cameraMoveReason = -1
|
|
62
66
|
private var lastSubmittedLocation: Location? = null
|
|
@@ -332,6 +336,13 @@ class GoogleMapsViewImpl(
|
|
|
332
336
|
}
|
|
333
337
|
pendingCircles.clear()
|
|
334
338
|
}
|
|
339
|
+
|
|
340
|
+
if (pendingHeatmaps.isNotEmpty()) {
|
|
341
|
+
pendingHeatmaps.forEach { (id, opts) ->
|
|
342
|
+
internalAddHeatmap(id, opts)
|
|
343
|
+
}
|
|
344
|
+
pendingHeatmaps.clear()
|
|
345
|
+
}
|
|
335
346
|
}
|
|
336
347
|
|
|
337
348
|
var uiSettings: RNMapUiSettings? = null
|
|
@@ -772,6 +783,48 @@ class GoogleMapsViewImpl(
|
|
|
772
783
|
pendingCircles.clear()
|
|
773
784
|
}
|
|
774
785
|
|
|
786
|
+
fun addHeatmap(
|
|
787
|
+
id: String,
|
|
788
|
+
opts: TileOverlayOptions,
|
|
789
|
+
) {
|
|
790
|
+
if (googleMap == null) {
|
|
791
|
+
pendingHeatmaps.add(id to opts)
|
|
792
|
+
return
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
onUi {
|
|
796
|
+
heatmapsById.remove(id)?.remove()
|
|
797
|
+
}
|
|
798
|
+
internalAddHeatmap(id, opts)
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
private fun internalAddHeatmap(
|
|
802
|
+
id: String,
|
|
803
|
+
opts: TileOverlayOptions,
|
|
804
|
+
) {
|
|
805
|
+
onUi {
|
|
806
|
+
val heatmap =
|
|
807
|
+
googleMap?.addTileOverlay(opts)
|
|
808
|
+
if (heatmap != null) {
|
|
809
|
+
heatmapsById[id] = heatmap
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
fun removeHeatmap(id: String) {
|
|
815
|
+
onUi {
|
|
816
|
+
heatmapsById.remove(id)?.remove()
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
fun clearHeatmaps() {
|
|
821
|
+
onUi {
|
|
822
|
+
heatmapsById.values.forEach { it.remove() }
|
|
823
|
+
}
|
|
824
|
+
circlesById.clear()
|
|
825
|
+
pendingHeatmaps.clear()
|
|
826
|
+
}
|
|
827
|
+
|
|
775
828
|
fun destroyInternal() {
|
|
776
829
|
onUi {
|
|
777
830
|
markerBuilder.cancelAllJobs()
|
|
@@ -779,6 +832,7 @@ class GoogleMapsViewImpl(
|
|
|
779
832
|
clearPolylines()
|
|
780
833
|
clearPolygons()
|
|
781
834
|
clearCircles()
|
|
835
|
+
clearHeatmaps()
|
|
782
836
|
locationHandler.stop()
|
|
783
837
|
googleMap?.apply {
|
|
784
838
|
setOnCameraMoveStartedListener(null)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.rngooglemapsplus
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.uimanager.PixelUtil.dpToPx
|
|
4
|
+
import com.google.android.gms.maps.model.TileOverlayOptions
|
|
5
|
+
import com.google.maps.android.heatmaps.Gradient
|
|
6
|
+
import com.google.maps.android.heatmaps.HeatmapTileProvider
|
|
7
|
+
import com.rngooglemapsplus.extensions.toColor
|
|
8
|
+
import com.rngooglemapsplus.extensions.toWeightedLatLngs
|
|
9
|
+
|
|
10
|
+
class MapHeatmapBuilder {
|
|
11
|
+
fun build(heatmap: RNHeatmap): TileOverlayOptions {
|
|
12
|
+
val provider =
|
|
13
|
+
HeatmapTileProvider
|
|
14
|
+
.Builder()
|
|
15
|
+
.apply {
|
|
16
|
+
weightedData(heatmap.weightedData.toWeightedLatLngs())
|
|
17
|
+
heatmap.radius?.let { radius(it.dpToPx().toInt().coerceIn(10, 50)) }
|
|
18
|
+
heatmap.opacity?.let { opacity(it) }
|
|
19
|
+
heatmap.gradient?.let {
|
|
20
|
+
val colors = it.colors.map { c -> c.toColor() }.toIntArray()
|
|
21
|
+
val startPoints = it.startPoints.map { p -> p.toFloat() }.toFloatArray()
|
|
22
|
+
gradient(Gradient(colors, startPoints))
|
|
23
|
+
}
|
|
24
|
+
}.build()
|
|
25
|
+
|
|
26
|
+
return TileOverlayOptions().apply {
|
|
27
|
+
tileProvider(provider)
|
|
28
|
+
heatmap.zIndex?.let { zIndex(it.toFloat()) }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -25,6 +25,7 @@ class RNGoogleMapsPlusView(
|
|
|
25
25
|
private val polylineBuilder = MapPolylineBuilder()
|
|
26
26
|
private val polygonBuilder = MapPolygonBuilder()
|
|
27
27
|
private val circleBuilder = MapCircleBuilder()
|
|
28
|
+
private val heatmapBuilder = MapHeatmapBuilder()
|
|
28
29
|
|
|
29
30
|
override val view =
|
|
30
31
|
GoogleMapsViewImpl(context, locationHandler, playServiceHandler, markerBuilder)
|
|
@@ -218,6 +219,21 @@ class RNGoogleMapsPlusView(
|
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
221
|
|
|
222
|
+
override var heatmaps: Array<RNHeatmap>? = null
|
|
223
|
+
set(value) {
|
|
224
|
+
if (field.contentEquals(value)) return
|
|
225
|
+
val prevById = field?.associateBy { it.id } ?: emptyMap()
|
|
226
|
+
val nextById = value?.associateBy { it.id } ?: emptyMap()
|
|
227
|
+
field = value
|
|
228
|
+
(prevById.keys - nextById.keys).forEach { id ->
|
|
229
|
+
view.removeHeatmap(id)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
nextById.forEach { (id, next) ->
|
|
233
|
+
view.addHeatmap(id, heatmapBuilder.build(next))
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
221
237
|
override var locationConfig: RNLocationConfig? = null
|
|
222
238
|
set(value) {
|
|
223
239
|
if (field == value) return
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
package com.rngooglemapsplus.extensions
|
|
2
|
+
|
|
3
|
+
import com.google.android.gms.maps.model.LatLng
|
|
4
|
+
import com.google.maps.android.heatmaps.WeightedLatLng
|
|
5
|
+
import com.rngooglemapsplus.RNHeatmapPoint
|
|
6
|
+
|
|
7
|
+
fun RNHeatmapPoint.toWeightedLatLng(): WeightedLatLng = WeightedLatLng(LatLng(latitude, longitude), weight)
|
|
8
|
+
|
|
9
|
+
fun Array<RNHeatmapPoint>.toWeightedLatLngs(): Collection<WeightedLatLng> = map { it.toWeightedLatLng() }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import CoreLocation
|
|
2
2
|
import GoogleMaps
|
|
3
|
+
import GoogleMapsUtils
|
|
3
4
|
import UIKit
|
|
4
5
|
|
|
5
6
|
final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
|
|
@@ -14,11 +15,13 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
|
|
|
14
15
|
private var pendingPolylines: [(id: String, polyline: GMSPolyline)] = []
|
|
15
16
|
private var pendingPolygons: [(id: String, polygon: GMSPolygon)] = []
|
|
16
17
|
private var pendingCircles: [(id: String, circle: GMSCircle)] = []
|
|
18
|
+
private var pendingHeatmaps: [(id: String, heatmap: GMUHeatmapTileLayer)] = []
|
|
17
19
|
|
|
18
20
|
private var markersById: [String: GMSMarker] = [:]
|
|
19
21
|
private var polylinesById: [String: GMSPolyline] = [:]
|
|
20
22
|
private var polygonsById: [String: GMSPolygon] = [:]
|
|
21
23
|
private var circlesById: [String: GMSCircle] = [:]
|
|
24
|
+
private var heatmapsById: [String: GMUHeatmapTileLayer] = [:]
|
|
22
25
|
|
|
23
26
|
private var cameraMoveReasonIsGesture: Bool = false
|
|
24
27
|
private var lastSubmittedCameraPosition: GMSCameraPosition?
|
|
@@ -148,30 +151,32 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
|
|
|
148
151
|
$0.ios?.desiredAccuracy?.toCLLocationAccuracy
|
|
149
152
|
locationHandler.distanceFilterMeters = $0.ios?.distanceFilterMeters
|
|
150
153
|
}
|
|
151
|
-
|
|
152
154
|
if !pendingMarkers.isEmpty {
|
|
153
155
|
pendingMarkers.forEach { addMarkerInternal(id: $0.id, marker: $0.marker) }
|
|
154
156
|
pendingMarkers.removeAll()
|
|
155
157
|
}
|
|
156
|
-
|
|
157
158
|
if !pendingPolylines.isEmpty {
|
|
158
159
|
pendingPolylines.forEach {
|
|
159
160
|
addPolylineInternal(id: $0.id, polyline: $0.polyline)
|
|
160
161
|
}
|
|
161
162
|
pendingPolylines.removeAll()
|
|
162
163
|
}
|
|
163
|
-
|
|
164
164
|
if !pendingPolygons.isEmpty {
|
|
165
165
|
pendingPolygons.forEach {
|
|
166
166
|
addPolygonInternal(id: $0.id, polygon: $0.polygon)
|
|
167
167
|
}
|
|
168
168
|
pendingPolygons.removeAll()
|
|
169
169
|
}
|
|
170
|
-
|
|
171
170
|
if !pendingCircles.isEmpty {
|
|
172
171
|
pendingCircles.forEach { addCircleInternal(id: $0.id, circle: $0.circle) }
|
|
173
172
|
pendingCircles.removeAll()
|
|
174
173
|
}
|
|
174
|
+
if !pendingHeatmaps.isEmpty {
|
|
175
|
+
pendingHeatmaps.forEach {
|
|
176
|
+
addHeatmapInternal(id: $0.id, heatmap: $0.heatmap)
|
|
177
|
+
}
|
|
178
|
+
pendingHeatmaps.removeAll()
|
|
179
|
+
}
|
|
175
180
|
}
|
|
176
181
|
|
|
177
182
|
var currentCamera: GMSCameraPosition? {
|
|
@@ -491,12 +496,41 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
|
|
|
491
496
|
pendingCircles.removeAll()
|
|
492
497
|
}
|
|
493
498
|
|
|
499
|
+
@MainActor
|
|
500
|
+
func addHeatmap(id: String, heatmap: GMUHeatmapTileLayer) {
|
|
501
|
+
if mapView == nil {
|
|
502
|
+
pendingHeatmaps.append((id, heatmap))
|
|
503
|
+
return
|
|
504
|
+
}
|
|
505
|
+
heatmapsById.removeValue(forKey: id).map { $0.map = nil }
|
|
506
|
+
addHeatmapInternal(id: id, heatmap: heatmap)
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
@MainActor
|
|
510
|
+
private func addHeatmapInternal(id: String, heatmap: GMUHeatmapTileLayer) {
|
|
511
|
+
heatmap.map = mapView
|
|
512
|
+
heatmapsById[id] = heatmap
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
@MainActor
|
|
516
|
+
func removeHeatmap(id: String) {
|
|
517
|
+
heatmapsById.removeValue(forKey: id).map { $0.map = nil }
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
@MainActor
|
|
521
|
+
func clearHeatmaps() {
|
|
522
|
+
heatmapsById.values.forEach { $0.map = nil }
|
|
523
|
+
heatmapsById.removeAll()
|
|
524
|
+
pendingHeatmaps.removeAll()
|
|
525
|
+
}
|
|
526
|
+
|
|
494
527
|
func deinitInternal() {
|
|
495
528
|
markerBuilder.cancelAllIconTasks()
|
|
496
529
|
clearMarkers()
|
|
497
530
|
clearPolylines()
|
|
498
531
|
clearPolygons()
|
|
499
532
|
clearCircles()
|
|
533
|
+
clearHeatmaps()
|
|
500
534
|
locationHandler.stop()
|
|
501
535
|
mapView?.clear()
|
|
502
536
|
mapView?.delegate = nil
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
import GoogleMaps
|
|
3
|
+
import GoogleMapsUtils
|
|
4
|
+
import UIKit
|
|
5
|
+
|
|
6
|
+
final class MapHeatmapBuilder {
|
|
7
|
+
func build(_ h: RNHeatmap) -> GMUHeatmapTileLayer {
|
|
8
|
+
let heatmap = GMUHeatmapTileLayer()
|
|
9
|
+
heatmap.weightedData = h.weightedData.toWeightedLatLngs()
|
|
10
|
+
|
|
11
|
+
h.radius.map { heatmap.radius = UInt($0) }
|
|
12
|
+
h.opacity.map { heatmap.opacity = Float($0) }
|
|
13
|
+
h.zIndex.map { heatmap.zIndex = Int32($0) }
|
|
14
|
+
|
|
15
|
+
h.gradient.map { g in
|
|
16
|
+
let colors = g.colors.map { $0.toUIColor() }
|
|
17
|
+
let startPoints = g.startPoints.map { NSNumber(value: $0) }
|
|
18
|
+
heatmap.gradient = GMUGradient(
|
|
19
|
+
colors: colors,
|
|
20
|
+
startPoints: startPoints,
|
|
21
|
+
colorMapSize: 256
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return heatmap
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -12,6 +12,7 @@ final class RNGoogleMapsPlusView: HybridRNGoogleMapsPlusViewSpec {
|
|
|
12
12
|
private let polylineBuilder = MapPolylineBuilder()
|
|
13
13
|
private let polygonBuilder = MapPolygonBuilder()
|
|
14
14
|
private let circleBuilder = MapCircleBuilder()
|
|
15
|
+
private let heatmapBuilder = MapHeatmapBuilder()
|
|
15
16
|
|
|
16
17
|
private let impl: GoogleMapsViewImpl
|
|
17
18
|
|
|
@@ -234,6 +235,27 @@ final class RNGoogleMapsPlusView: HybridRNGoogleMapsPlusViewSpec {
|
|
|
234
235
|
}
|
|
235
236
|
}
|
|
236
237
|
|
|
238
|
+
@MainActor
|
|
239
|
+
var heatmaps: [RNHeatmap]? {
|
|
240
|
+
didSet {
|
|
241
|
+
let prevById = Dictionary(
|
|
242
|
+
(oldValue ?? []).map { ($0.id, $0) },
|
|
243
|
+
uniquingKeysWith: { _, new in new }
|
|
244
|
+
)
|
|
245
|
+
let nextById = Dictionary(
|
|
246
|
+
(heatmaps ?? []).map { ($0.id, $0) },
|
|
247
|
+
uniquingKeysWith: { _, new in new }
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
let removed = Set(prevById.keys).subtracting(nextById.keys)
|
|
251
|
+
removed.forEach { impl.removeHeatmap(id: $0) }
|
|
252
|
+
|
|
253
|
+
for (id, next) in nextById {
|
|
254
|
+
impl.addHeatmap(id: id, heatmap: heatmapBuilder.build(next))
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
237
259
|
@MainActor var locationConfig: RNLocationConfig? {
|
|
238
260
|
didSet {
|
|
239
261
|
impl.locationConfig = locationConfig
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import CoreLocation
|
|
2
|
+
import Foundation
|
|
3
|
+
import GoogleMapsUtils
|
|
4
|
+
|
|
5
|
+
extension RNHeatmapPoint {
|
|
6
|
+
func toWeightedLatLng() -> GMUWeightedLatLng {
|
|
7
|
+
let coord = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
|
|
8
|
+
return GMUWeightedLatLng(coordinate: coord, intensity: Float(weight))
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
extension Array where Element == RNHeatmapPoint {
|
|
13
|
+
func toWeightedLatLngs() -> [GMUWeightedLatLng] {
|
|
14
|
+
map { $0.toWeightedLatLng() }
|
|
15
|
+
}
|
|
16
|
+
}
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RNAndroidLocationPriority","RNIOSLocationAccuracy","RNAndroidLocationPermissionResult","RNIOSPermissionResult","RNLocationErrorCode","RNMapErrorCode"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AA0CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["RNAndroidLocationPriority","RNIOSLocationAccuracy","RNAndroidLocationPermissionResult","RNIOSPermissionResult","RNLocationErrorCode","RNMapErrorCode"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AA0CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;;AA0HA,WAAYA,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAYrC,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAYjC,WAAYC,iCAAiC,0BAAjCA,iCAAiC;EAAjCA,iCAAiC,CAAjCA,iCAAiC;EAAjCA,iCAAiC,CAAjCA,iCAAiC;EAAjCA,iCAAiC,CAAjCA,iCAAiC;EAAA,OAAjCA,iCAAiC;AAAA;AAM7C,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAUjC,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAS/B,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HybridView, HybridViewMethods, HybridViewProps } from 'react-native-nitro-modules';
|
|
2
|
-
import type { RNCamera, RNLatLng, RNMapPadding, RNPolygon, RNPolyline, RNUserInterfaceStyle, RNLocationErrorCode, RNMarker, RNLocationPermissionResult, RNRegion, RNLocation, RNMapErrorCode, RNMapType, RNInitialProps, RNCircle, RNMapUiSettings, RNLocationConfig, RNMapZoomConfig } from './types';
|
|
2
|
+
import type { RNCamera, RNLatLng, RNMapPadding, RNPolygon, RNPolyline, RNUserInterfaceStyle, RNLocationErrorCode, RNMarker, RNLocationPermissionResult, RNRegion, RNLocation, RNMapErrorCode, RNMapType, RNInitialProps, RNCircle, RNMapUiSettings, RNLocationConfig, RNMapZoomConfig, RNHeatmap } from './types';
|
|
3
3
|
export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
|
|
4
4
|
initialProps?: RNInitialProps;
|
|
5
5
|
uiSettings?: RNMapUiSettings;
|
|
@@ -16,6 +16,7 @@ export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
|
|
|
16
16
|
polygons?: RNPolygon[];
|
|
17
17
|
polylines?: RNPolyline[];
|
|
18
18
|
circles?: RNCircle[];
|
|
19
|
+
heatmaps?: RNHeatmap[];
|
|
19
20
|
locationConfig?: RNLocationConfig;
|
|
20
21
|
onMapError?: (error: RNMapErrorCode) => void;
|
|
21
22
|
onMapReady?: (ready: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RNGoogleMapsPlusView.nitro.d.ts","sourceRoot":"","sources":["../../../src/RNGoogleMapsPlusView.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,QAAQ,EACR,0BAA0B,EAC1B,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,
|
|
1
|
+
{"version":3,"file":"RNGoogleMapsPlusView.nitro.d.ts","sourceRoot":"","sources":["../../../src/RNGoogleMapsPlusView.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,6 +114,25 @@ export type RNCircle = {
|
|
|
114
114
|
strokeColor?: string;
|
|
115
115
|
fillColor?: string;
|
|
116
116
|
};
|
|
117
|
+
export type RNHeatmap = {
|
|
118
|
+
id: string;
|
|
119
|
+
pressable?: boolean;
|
|
120
|
+
zIndex?: number;
|
|
121
|
+
weightedData: RNHeatmapPoint[];
|
|
122
|
+
radius?: number;
|
|
123
|
+
opacity?: number;
|
|
124
|
+
gradient?: RNHeatmapGradient;
|
|
125
|
+
};
|
|
126
|
+
export type RNHeatmapPoint = {
|
|
127
|
+
latitude: number;
|
|
128
|
+
longitude: number;
|
|
129
|
+
weight: number;
|
|
130
|
+
};
|
|
131
|
+
export type RNHeatmapGradient = {
|
|
132
|
+
colors: string[];
|
|
133
|
+
startPoints: number[];
|
|
134
|
+
colorMapSize: number;
|
|
135
|
+
};
|
|
117
136
|
export type RNLocationConfig = {
|
|
118
137
|
android?: RNAndroidLocationConfig;
|
|
119
138
|
ios?: RNIOSLocationConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAC;AAExE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG;IAAE,SAAS,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAE/E,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AA+BnC,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAcnC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAMlC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,GAAG,CAAC,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,oBAAY,yBAAyB;IACnC,sBAAsB,IAAI;IAC1B,gCAAgC,IAAI;IACpC,kBAAkB,IAAI;IACtB,gBAAgB,IAAI;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,oBAAY,qBAAqB;IAC/B,aAAa,IAAI;IACjB,0BAA0B,IAAI;IAC9B,8BAA8B,IAAI;IAClC,kBAAkB,IAAI;CACvB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,iCAAiC,CAAC;IAC5C,GAAG,CAAC,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAEF,oBAAY,iCAAiC;IAC3C,OAAO,IAAI;IACX,MAAM,KAAK;IACX,eAAe,KAAK;CACrB;AAED,oBAAY,qBAAqB;IAC/B,MAAM,KAAK;IACX,UAAU,IAAI;CACf;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,mBAAmB;IAC7B,iBAAiB,IAAI;IACrB,oBAAoB,IAAI;IACxB,OAAO,IAAI;IACX,0BAA0B,IAAI;IAC9B,sBAAsB,IAAI;IAC1B,cAAc,KAAK;CACpB;AAED,oBAAY,cAAc;IACxB,qBAAqB,IAAI;IACzB,qBAAqB,IAAI;IACzB,sBAAsB,IAAI;IAC1B,sBAAsB,IAAI;IAC1B,6BAA6B,IAAI;IACjC,qBAAqB,IAAI;IACzB,OAAO,IAAI;CACZ"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,12 @@ namespace margelo::nitro::rngooglemapsplus { enum class RNLineCapType; }
|
|
|
39
39
|
namespace margelo::nitro::rngooglemapsplus { enum class RNLineJoinType; }
|
|
40
40
|
// Forward declaration of `RNCircle` to properly resolve imports.
|
|
41
41
|
namespace margelo::nitro::rngooglemapsplus { struct RNCircle; }
|
|
42
|
+
// Forward declaration of `RNHeatmap` to properly resolve imports.
|
|
43
|
+
namespace margelo::nitro::rngooglemapsplus { struct RNHeatmap; }
|
|
44
|
+
// Forward declaration of `RNHeatmapPoint` to properly resolve imports.
|
|
45
|
+
namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapPoint; }
|
|
46
|
+
// Forward declaration of `RNHeatmapGradient` to properly resolve imports.
|
|
47
|
+
namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapGradient; }
|
|
42
48
|
// Forward declaration of `RNLocationConfig` to properly resolve imports.
|
|
43
49
|
namespace margelo::nitro::rngooglemapsplus { struct RNLocationConfig; }
|
|
44
50
|
// Forward declaration of `RNAndroidLocationConfig` to properly resolve imports.
|
|
@@ -99,6 +105,12 @@ namespace margelo::nitro::rngooglemapsplus { enum class RNIOSPermissionResult; }
|
|
|
99
105
|
#include "JRNLineJoinType.hpp"
|
|
100
106
|
#include "RNCircle.hpp"
|
|
101
107
|
#include "JRNCircle.hpp"
|
|
108
|
+
#include "RNHeatmap.hpp"
|
|
109
|
+
#include "JRNHeatmap.hpp"
|
|
110
|
+
#include "RNHeatmapPoint.hpp"
|
|
111
|
+
#include "JRNHeatmapPoint.hpp"
|
|
112
|
+
#include "RNHeatmapGradient.hpp"
|
|
113
|
+
#include "JRNHeatmapGradient.hpp"
|
|
102
114
|
#include "RNLocationConfig.hpp"
|
|
103
115
|
#include "JRNLocationConfig.hpp"
|
|
104
116
|
#include "RNAndroidLocationConfig.hpp"
|
|
@@ -360,6 +372,32 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
360
372
|
return __array;
|
|
361
373
|
}() : nullptr);
|
|
362
374
|
}
|
|
375
|
+
std::optional<std::vector<RNHeatmap>> JHybridRNGoogleMapsPlusViewSpec::getHeatmaps() {
|
|
376
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JRNHeatmap>>()>("getHeatmaps");
|
|
377
|
+
auto __result = method(_javaPart);
|
|
378
|
+
return __result != nullptr ? std::make_optional([&]() {
|
|
379
|
+
size_t __size = __result->size();
|
|
380
|
+
std::vector<RNHeatmap> __vector;
|
|
381
|
+
__vector.reserve(__size);
|
|
382
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
383
|
+
auto __element = __result->getElement(__i);
|
|
384
|
+
__vector.push_back(__element->toCpp());
|
|
385
|
+
}
|
|
386
|
+
return __vector;
|
|
387
|
+
}()) : std::nullopt;
|
|
388
|
+
}
|
|
389
|
+
void JHybridRNGoogleMapsPlusViewSpec::setHeatmaps(const std::optional<std::vector<RNHeatmap>>& heatmaps) {
|
|
390
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JRNHeatmap>> /* heatmaps */)>("setHeatmaps");
|
|
391
|
+
method(_javaPart, heatmaps.has_value() ? [&]() {
|
|
392
|
+
size_t __size = heatmaps.value().size();
|
|
393
|
+
jni::local_ref<jni::JArrayClass<JRNHeatmap>> __array = jni::JArrayClass<JRNHeatmap>::newArray(__size);
|
|
394
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
395
|
+
const auto& __element = heatmaps.value()[__i];
|
|
396
|
+
__array->setElement(__i, *JRNHeatmap::fromCpp(__element));
|
|
397
|
+
}
|
|
398
|
+
return __array;
|
|
399
|
+
}() : nullptr);
|
|
400
|
+
}
|
|
363
401
|
std::optional<RNLocationConfig> JHybridRNGoogleMapsPlusViewSpec::getLocationConfig() {
|
|
364
402
|
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRNLocationConfig>()>("getLocationConfig");
|
|
365
403
|
auto __result = method(_javaPart);
|
|
@@ -79,6 +79,8 @@ namespace margelo::nitro::rngooglemapsplus {
|
|
|
79
79
|
void setPolylines(const std::optional<std::vector<RNPolyline>>& polylines) override;
|
|
80
80
|
std::optional<std::vector<RNCircle>> getCircles() override;
|
|
81
81
|
void setCircles(const std::optional<std::vector<RNCircle>>& circles) override;
|
|
82
|
+
std::optional<std::vector<RNHeatmap>> getHeatmaps() override;
|
|
83
|
+
void setHeatmaps(const std::optional<std::vector<RNHeatmap>>& heatmaps) override;
|
|
82
84
|
std::optional<RNLocationConfig> getLocationConfig() override;
|
|
83
85
|
void setLocationConfig(const std::optional<RNLocationConfig>& locationConfig) override;
|
|
84
86
|
std::optional<std::function<void(RNMapErrorCode /* error */)>> getOnMapError() override;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JRNHeatmap.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "RNHeatmap.hpp"
|
|
12
|
+
|
|
13
|
+
#include "JRNHeatmapGradient.hpp"
|
|
14
|
+
#include "JRNHeatmapPoint.hpp"
|
|
15
|
+
#include "RNHeatmapGradient.hpp"
|
|
16
|
+
#include "RNHeatmapPoint.hpp"
|
|
17
|
+
#include <optional>
|
|
18
|
+
#include <string>
|
|
19
|
+
#include <vector>
|
|
20
|
+
|
|
21
|
+
namespace margelo::nitro::rngooglemapsplus {
|
|
22
|
+
|
|
23
|
+
using namespace facebook;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The C++ JNI bridge between the C++ struct "RNHeatmap" and the the Kotlin data class "RNHeatmap".
|
|
27
|
+
*/
|
|
28
|
+
struct JRNHeatmap final: public jni::JavaClass<JRNHeatmap> {
|
|
29
|
+
public:
|
|
30
|
+
static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNHeatmap;";
|
|
31
|
+
|
|
32
|
+
public:
|
|
33
|
+
/**
|
|
34
|
+
* Convert this Java/Kotlin-based struct to the C++ struct RNHeatmap by copying all values to C++.
|
|
35
|
+
*/
|
|
36
|
+
[[maybe_unused]]
|
|
37
|
+
[[nodiscard]]
|
|
38
|
+
RNHeatmap toCpp() const {
|
|
39
|
+
static const auto clazz = javaClassStatic();
|
|
40
|
+
static const auto fieldId = clazz->getField<jni::JString>("id");
|
|
41
|
+
jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
|
|
42
|
+
static const auto fieldPressable = clazz->getField<jni::JBoolean>("pressable");
|
|
43
|
+
jni::local_ref<jni::JBoolean> pressable = this->getFieldValue(fieldPressable);
|
|
44
|
+
static const auto fieldZIndex = clazz->getField<jni::JDouble>("zIndex");
|
|
45
|
+
jni::local_ref<jni::JDouble> zIndex = this->getFieldValue(fieldZIndex);
|
|
46
|
+
static const auto fieldWeightedData = clazz->getField<jni::JArrayClass<JRNHeatmapPoint>>("weightedData");
|
|
47
|
+
jni::local_ref<jni::JArrayClass<JRNHeatmapPoint>> weightedData = this->getFieldValue(fieldWeightedData);
|
|
48
|
+
static const auto fieldRadius = clazz->getField<jni::JDouble>("radius");
|
|
49
|
+
jni::local_ref<jni::JDouble> radius = this->getFieldValue(fieldRadius);
|
|
50
|
+
static const auto fieldOpacity = clazz->getField<jni::JDouble>("opacity");
|
|
51
|
+
jni::local_ref<jni::JDouble> opacity = this->getFieldValue(fieldOpacity);
|
|
52
|
+
static const auto fieldGradient = clazz->getField<JRNHeatmapGradient>("gradient");
|
|
53
|
+
jni::local_ref<JRNHeatmapGradient> gradient = this->getFieldValue(fieldGradient);
|
|
54
|
+
return RNHeatmap(
|
|
55
|
+
id->toStdString(),
|
|
56
|
+
pressable != nullptr ? std::make_optional(static_cast<bool>(pressable->value())) : std::nullopt,
|
|
57
|
+
zIndex != nullptr ? std::make_optional(zIndex->value()) : std::nullopt,
|
|
58
|
+
[&]() {
|
|
59
|
+
size_t __size = weightedData->size();
|
|
60
|
+
std::vector<RNHeatmapPoint> __vector;
|
|
61
|
+
__vector.reserve(__size);
|
|
62
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
63
|
+
auto __element = weightedData->getElement(__i);
|
|
64
|
+
__vector.push_back(__element->toCpp());
|
|
65
|
+
}
|
|
66
|
+
return __vector;
|
|
67
|
+
}(),
|
|
68
|
+
radius != nullptr ? std::make_optional(radius->value()) : std::nullopt,
|
|
69
|
+
opacity != nullptr ? std::make_optional(opacity->value()) : std::nullopt,
|
|
70
|
+
gradient != nullptr ? std::make_optional(gradient->toCpp()) : std::nullopt
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public:
|
|
75
|
+
/**
|
|
76
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
77
|
+
*/
|
|
78
|
+
[[maybe_unused]]
|
|
79
|
+
static jni::local_ref<JRNHeatmap::javaobject> fromCpp(const RNHeatmap& value) {
|
|
80
|
+
return newInstance(
|
|
81
|
+
jni::make_jstring(value.id),
|
|
82
|
+
value.pressable.has_value() ? jni::JBoolean::valueOf(value.pressable.value()) : nullptr,
|
|
83
|
+
value.zIndex.has_value() ? jni::JDouble::valueOf(value.zIndex.value()) : nullptr,
|
|
84
|
+
[&]() {
|
|
85
|
+
size_t __size = value.weightedData.size();
|
|
86
|
+
jni::local_ref<jni::JArrayClass<JRNHeatmapPoint>> __array = jni::JArrayClass<JRNHeatmapPoint>::newArray(__size);
|
|
87
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
88
|
+
const auto& __element = value.weightedData[__i];
|
|
89
|
+
__array->setElement(__i, *JRNHeatmapPoint::fromCpp(__element));
|
|
90
|
+
}
|
|
91
|
+
return __array;
|
|
92
|
+
}(),
|
|
93
|
+
value.radius.has_value() ? jni::JDouble::valueOf(value.radius.value()) : nullptr,
|
|
94
|
+
value.opacity.has_value() ? jni::JDouble::valueOf(value.opacity.value()) : nullptr,
|
|
95
|
+
value.gradient.has_value() ? JRNHeatmapGradient::fromCpp(value.gradient.value()) : nullptr
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
} // namespace margelo::nitro::rngooglemapsplus
|