react-native-google-maps-plus 1.1.0 → 1.2.0

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.
Files changed (33) hide show
  1. package/README.md +26 -4
  2. package/android/build.gradle +5 -1
  3. package/android/src/main/java/com/rngooglemapsplus/GoogleMapsViewImpl.kt +57 -0
  4. package/android/src/main/java/com/rngooglemapsplus/RNGoogleMapsPlusView.kt +14 -0
  5. package/ios/GoogleMapViewImpl.swift +44 -0
  6. package/ios/RNGoogleMapsPlusView.swift +21 -0
  7. package/lib/module/types.js.map +1 -1
  8. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts +2 -1
  9. package/lib/typescript/src/RNGoogleMapsPlusView.nitro.d.ts.map +1 -1
  10. package/lib/typescript/src/types.d.ts +4 -0
  11. package/lib/typescript/src/types.d.ts.map +1 -1
  12. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.cpp +30 -0
  13. package/nitrogen/generated/android/c++/JHybridRNGoogleMapsPlusViewSpec.hpp +2 -0
  14. package/nitrogen/generated/android/c++/JRNKMLayer.hpp +57 -0
  15. package/nitrogen/generated/android/c++/views/JHybridRNGoogleMapsPlusViewStateUpdater.cpp +4 -0
  16. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/HybridRNGoogleMapsPlusViewSpec.kt +6 -0
  17. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rngooglemapsplus/RNKMLayer.kt +32 -0
  18. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Bridge.hpp +29 -0
  19. package/nitrogen/generated/ios/RNGoogleMapsPlus-Swift-Cxx-Umbrella.hpp +3 -0
  20. package/nitrogen/generated/ios/c++/HybridRNGoogleMapsPlusViewSpecSwift.hpp +10 -0
  21. package/nitrogen/generated/ios/c++/views/HybridRNGoogleMapsPlusViewComponent.mm +5 -0
  22. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec.swift +1 -0
  23. package/nitrogen/generated/ios/swift/HybridRNGoogleMapsPlusViewSpec_cxx.swift +30 -0
  24. package/nitrogen/generated/ios/swift/RNKMLayer.swift +46 -0
  25. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.cpp +2 -0
  26. package/nitrogen/generated/shared/c++/HybridRNGoogleMapsPlusViewSpec.hpp +5 -0
  27. package/nitrogen/generated/shared/c++/RNKMLayer.hpp +71 -0
  28. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.cpp +12 -0
  29. package/nitrogen/generated/shared/c++/views/HybridRNGoogleMapsPlusViewComponent.hpp +2 -0
  30. package/nitrogen/generated/shared/json/RNGoogleMapsPlusViewConfig.json +1 -0
  31. package/package.json +1 -1
  32. package/src/RNGoogleMapsPlusView.nitro.ts +2 -0
  33. package/src/types.ts +5 -0
package/README.md CHANGED
@@ -103,9 +103,10 @@ Checkout the example app in the [example](./example) folder.
103
103
  - **`GMSServices must be configured before use`**
104
104
  Ensure your key is in `Info.plist` and/or provided via `GMSServices.provideAPIKey(...)` in `AppDelegate.swift`.
105
105
 
106
- - **Build fails with `Node.h` import error from SVGKit**
107
- SVGKit uses a header `Node.h` which can conflict with iOS system headers.
108
- You can patch it automatically in your **Podfile** inside the `post_install` hook:
106
+ - **Build fails with `Node.h`, `CSSValue.h`, or `SVGLength.h` import errors from SVGKit**
107
+ SVGKit includes headers (`Node.h`, `CSSValue.h`, `SVGLength.h`) that can conflict with
108
+ iOS system headers and React Native Reanimated’s internal types.
109
+ You can patch them automatically in your **Podfile** inside the `post_install`
109
110
 
110
111
  ```ruby
111
112
  post_install do |installer|
@@ -121,14 +122,35 @@ Checkout the example app in the [example](./example) folder.
121
122
  end
122
123
  end
123
124
 
124
- # Patch SVGKit includes to avoid Node.h conflicts
125
+ # --- SVGKit Patch ---
125
126
  require 'fileutils'
126
127
  svgkit_path = File.join(installer.sandbox.pod_dir('SVGKit'), 'Source')
128
+
129
+ # node fix
127
130
  Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
128
131
  FileUtils.chmod("u+w", file)
129
132
  text = File.read(file)
130
133
  new_contents = text.gsub('#import "Node.h"', '#import "SVGKit/Node.h"')
131
134
  File.open(file, 'w') { |f| f.write(new_contents) }
135
+ # puts "Patched Node import in: #{file}"
136
+ end
137
+
138
+ # import CSSValue.h
139
+ Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
140
+ FileUtils.chmod("u+w", file)
141
+ text = File.read(file)
142
+ new_contents = text.gsub('#import "CSSValue.h"', '#import "SVGKit/CSSValue.h"')
143
+ File.open(file, 'w') { |f| f.write(new_contents) }
144
+ # puts "Patched CSSValue import in: #{file}"
145
+ end
146
+
147
+ # import SVGLength.h
148
+ Dir.glob(File.join(svgkit_path, '**', '*.{h,m}')).each do |file|
149
+ FileUtils.chmod("u+w", file)
150
+ text = File.read(file)
151
+ new_contents = text.gsub('#import "SVGLength.h"', '#import "SVGKit/SVGLength.h"')
152
+ File.open(file, 'w') { |f| f.write(new_contents) }
153
+ # puts "Patched SVGLength import in: #{file}"
132
154
  end
133
155
  end
134
156
  ```
@@ -25,7 +25,11 @@ apply plugin: "kotlin-android"
25
25
  apply from: '../nitrogen/generated/android/RNGoogleMapsPlus+autolinking.gradle'
26
26
  apply from: "./fix-prefab.gradle"
27
27
 
28
- apply plugin: "com.facebook.react"
28
+ if (rootProject.name != "rngooglemapsplus.example") {
29
+ apply plugin: "com.facebook.react"
30
+ } else {
31
+ println("\u001B[33m⚠️ Skipping React Native Gradle plugin in library (example build detected)\u001B[0m")
32
+ }
29
33
 
30
34
  def getExtOrIntegerDefault(name) {
31
35
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["RNGoogleMapsPlus_" + name]).toInteger()
@@ -27,8 +27,11 @@ import com.google.android.gms.maps.model.Polyline
27
27
  import com.google.android.gms.maps.model.PolylineOptions
28
28
  import com.google.android.gms.maps.model.TileOverlay
29
29
  import com.google.android.gms.maps.model.TileOverlayOptions
30
+ import com.google.maps.android.data.kml.KmlLayer
30
31
  import com.rngooglemapsplus.extensions.toGooglePriority
31
32
  import com.rngooglemapsplus.extensions.toLocationErrorCode
33
+ import java.io.ByteArrayInputStream
34
+ import java.nio.charset.StandardCharsets
32
35
 
33
36
  class GoogleMapsViewImpl(
34
37
  val reactContext: ThemedReactContext,
@@ -55,12 +58,14 @@ class GoogleMapsViewImpl(
55
58
  private val pendingPolygons = mutableListOf<Pair<String, PolygonOptions>>()
56
59
  private val pendingCircles = mutableListOf<Pair<String, CircleOptions>>()
57
60
  private val pendingHeatmaps = mutableListOf<Pair<String, TileOverlayOptions>>()
61
+ private val pendingKmlLayers = mutableListOf<Pair<String, String>>()
58
62
 
59
63
  private val markersById = mutableMapOf<String, Marker>()
60
64
  private val polylinesById = mutableMapOf<String, Polyline>()
61
65
  private val polygonsById = mutableMapOf<String, Polygon>()
62
66
  private val circlesById = mutableMapOf<String, Circle>()
63
67
  private val heatmapsById = mutableMapOf<String, TileOverlay>()
68
+ private val kmlLayersById = mutableMapOf<String, KmlLayer>()
64
69
 
65
70
  private var cameraMoveReason = -1
66
71
  private var lastSubmittedLocation: Location? = null
@@ -343,6 +348,13 @@ class GoogleMapsViewImpl(
343
348
  }
344
349
  pendingHeatmaps.clear()
345
350
  }
351
+
352
+ if (pendingKmlLayers.isNotEmpty()) {
353
+ pendingKmlLayers.forEach { (id, string) ->
354
+ internalAddKmlLayer(id, string)
355
+ }
356
+ pendingKmlLayers.clear()
357
+ }
346
358
  }
347
359
 
348
360
  var uiSettings: RNMapUiSettings? = null
@@ -825,6 +837,50 @@ class GoogleMapsViewImpl(
825
837
  pendingHeatmaps.clear()
826
838
  }
827
839
 
840
+ fun addKmlLayer(
841
+ id: String,
842
+ kmlString: String,
843
+ ) {
844
+ if (googleMap == null) {
845
+ pendingKmlLayers.add(id to kmlString)
846
+ return
847
+ }
848
+ onUi {
849
+ kmlLayersById.remove(id)?.removeLayerFromMap()
850
+ }
851
+ internalAddKmlLayer(id, kmlString)
852
+ }
853
+
854
+ private fun internalAddKmlLayer(
855
+ id: String,
856
+ kmlString: String,
857
+ ) {
858
+ onUi {
859
+ try {
860
+ val inputStream = ByteArrayInputStream(kmlString.toByteArray(StandardCharsets.UTF_8))
861
+ val layer = KmlLayer(googleMap, inputStream, context)
862
+ kmlLayersById[id] = layer
863
+ layer.addLayerToMap()
864
+ } catch (e: Exception) {
865
+ // / ignore
866
+ }
867
+ }
868
+ }
869
+
870
+ fun removeKmlLayer(id: String) {
871
+ onUi {
872
+ kmlLayersById.remove(id)?.removeLayerFromMap()
873
+ }
874
+ }
875
+
876
+ fun clearKmlLayer() {
877
+ onUi {
878
+ kmlLayersById.values.forEach { it.removeLayerFromMap() }
879
+ }
880
+ kmlLayersById.clear()
881
+ pendingKmlLayers.clear()
882
+ }
883
+
828
884
  fun destroyInternal() {
829
885
  onUi {
830
886
  markerBuilder.cancelAllJobs()
@@ -833,6 +889,7 @@ class GoogleMapsViewImpl(
833
889
  clearPolygons()
834
890
  clearCircles()
835
891
  clearHeatmaps()
892
+ clearKmlLayer()
836
893
  locationHandler.stop()
837
894
  googleMap?.apply {
838
895
  setOnCameraMoveStartedListener(null)
@@ -234,6 +234,20 @@ class RNGoogleMapsPlusView(
234
234
  }
235
235
  }
236
236
 
237
+ override var kmlLayers: Array<RNKMLayer>? = null
238
+ set(value) {
239
+ if (field.contentEquals(value)) return
240
+ val prevById = field?.associateBy { it.id } ?: emptyMap()
241
+ val nextById = value?.associateBy { it.id } ?: emptyMap()
242
+ field = value
243
+ (prevById.keys - nextById.keys).forEach { id ->
244
+ view.removeKmlLayer(id)
245
+ }
246
+ nextById.forEach { (id, next) ->
247
+ view.addKmlLayer(id, next.kmlString)
248
+ }
249
+ }
250
+
237
251
  override var locationConfig: RNLocationConfig? = null
238
252
  set(value) {
239
253
  if (field == value) return
@@ -16,12 +16,14 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
16
16
  private var pendingPolygons: [(id: String, polygon: GMSPolygon)] = []
17
17
  private var pendingCircles: [(id: String, circle: GMSCircle)] = []
18
18
  private var pendingHeatmaps: [(id: String, heatmap: GMUHeatmapTileLayer)] = []
19
+ private var pendingKmlLayers: [(id: String, kmlString: String)] = []
19
20
 
20
21
  private var markersById: [String: GMSMarker] = [:]
21
22
  private var polylinesById: [String: GMSPolyline] = [:]
22
23
  private var polygonsById: [String: GMSPolygon] = [:]
23
24
  private var circlesById: [String: GMSCircle] = [:]
24
25
  private var heatmapsById: [String: GMUHeatmapTileLayer] = [:]
26
+ private var kmlLayerById: [String: GMUGeometryRenderer] = [:]
25
27
 
26
28
  private var cameraMoveReasonIsGesture: Bool = false
27
29
  private var lastSubmittedCameraPosition: GMSCameraPosition?
@@ -177,6 +179,12 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
177
179
  }
178
180
  pendingHeatmaps.removeAll()
179
181
  }
182
+ if !pendingKmlLayers.isEmpty {
183
+ pendingKmlLayers.forEach {
184
+ addKmlLayerInternal(id: $0.id, kmlString: $0.kmlString)
185
+ }
186
+ pendingKmlLayers.removeAll()
187
+ }
180
188
  }
181
189
 
182
190
  var currentCamera: GMSCameraPosition? {
@@ -524,6 +532,42 @@ final class GoogleMapsViewImpl: UIView, GMSMapViewDelegate {
524
532
  pendingHeatmaps.removeAll()
525
533
  }
526
534
 
535
+ @MainActor
536
+ func addKmlLayer(id: String, kmlString: String) {
537
+ if mapView == nil {
538
+ pendingKmlLayers.append((id, kmlString))
539
+ return
540
+ }
541
+ kmlLayerById.removeValue(forKey: id).map { $0.clear() }
542
+ addKmlLayerInternal(id: id, kmlString: kmlString)
543
+ }
544
+
545
+ @MainActor
546
+ private func addKmlLayerInternal(id: String, kmlString: String) {
547
+ guard let data = kmlString.data(using: .utf8) else { return }
548
+ let parser = GMUKMLParser(data: data)
549
+ parser.parse()
550
+ mapView.map { mapView in
551
+ let renderer = GMUGeometryRenderer(
552
+ map: mapView,
553
+ geometries: parser.placemarks
554
+ )
555
+ renderer.render()
556
+ }
557
+ }
558
+
559
+ @MainActor
560
+ func removeKmlLayer(id: String) {
561
+ kmlLayerById.removeValue(forKey: id).map { $0.clear() }
562
+ }
563
+
564
+ @MainActor
565
+ func clearKmlLayers() {
566
+ kmlLayerById.values.forEach { $0.clear() }
567
+ kmlLayerById.removeAll()
568
+ pendingKmlLayers.removeAll()
569
+ }
570
+
527
571
  func deinitInternal() {
528
572
  markerBuilder.cancelAllIconTasks()
529
573
  clearMarkers()
@@ -256,6 +256,27 @@ final class RNGoogleMapsPlusView: HybridRNGoogleMapsPlusViewSpec {
256
256
  }
257
257
  }
258
258
 
259
+ @MainActor
260
+ var kmlLayers: [RNKMLayer]? {
261
+ didSet {
262
+ let prevById = Dictionary(
263
+ (oldValue ?? []).map { ($0.id, $0) },
264
+ uniquingKeysWith: { _, new in new }
265
+ )
266
+ let nextById = Dictionary(
267
+ (kmlLayers ?? []).map { ($0.id, $0) },
268
+ uniquingKeysWith: { _, new in new }
269
+ )
270
+
271
+ let removed = Set(prevById.keys).subtracting(nextById.keys)
272
+ removed.forEach { impl.removeKmlLayer(id: $0) }
273
+
274
+ for (id, next) in nextById {
275
+ impl.addKmlLayer(id: id, kmlString: next.kmlString)
276
+ }
277
+ }
278
+ }
279
+
259
280
  @MainActor var locationConfig: RNLocationConfig? {
260
281
  didSet {
261
282
  impl.locationConfig = locationConfig
@@ -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;;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
+ {"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;;AA+HA,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, RNHeatmap } from './types';
2
+ import type { RNCamera, RNLatLng, RNMapPadding, RNPolygon, RNPolyline, RNUserInterfaceStyle, RNLocationErrorCode, RNMarker, RNLocationPermissionResult, RNRegion, RNLocation, RNMapErrorCode, RNMapType, RNInitialProps, RNCircle, RNMapUiSettings, RNLocationConfig, RNMapZoomConfig, RNHeatmap, RNKMLayer } from './types';
3
3
  export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
4
4
  initialProps?: RNInitialProps;
5
5
  uiSettings?: RNMapUiSettings;
@@ -17,6 +17,7 @@ export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
17
17
  polylines?: RNPolyline[];
18
18
  circles?: RNCircle[];
19
19
  heatmaps?: RNHeatmap[];
20
+ kmlLayers?: RNKMLayer[];
20
21
  locationConfig?: RNLocationConfig;
21
22
  onMapError?: (error: RNMapErrorCode) => void;
22
23
  onMapReady?: (ready: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"RNGoogleMapsPlusView.nitro.d.ts","sourceRoot":"","sources":["../../../src/RNGoogleMapsPlusView.nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RNGoogleMapsPlusView.nitro.d.ts","sourceRoot":"","sources":["../../../src/RNGoogleMapsPlusView.nitro.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,10 @@ export type RNHeatmapGradient = {
133
133
  startPoints: number[];
134
134
  colorMapSize: number;
135
135
  };
136
+ export type RNKMLayer = {
137
+ id: string;
138
+ kmlString: string;
139
+ };
136
140
  export type RNLocationConfig = {
137
141
  android?: RNAndroidLocationConfig;
138
142
  ios?: RNIOSLocationConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,8 @@ namespace margelo::nitro::rngooglemapsplus { struct RNHeatmap; }
45
45
  namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapPoint; }
46
46
  // Forward declaration of `RNHeatmapGradient` to properly resolve imports.
47
47
  namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapGradient; }
48
+ // Forward declaration of `RNKMLayer` to properly resolve imports.
49
+ namespace margelo::nitro::rngooglemapsplus { struct RNKMLayer; }
48
50
  // Forward declaration of `RNLocationConfig` to properly resolve imports.
49
51
  namespace margelo::nitro::rngooglemapsplus { struct RNLocationConfig; }
50
52
  // Forward declaration of `RNAndroidLocationConfig` to properly resolve imports.
@@ -111,6 +113,8 @@ namespace margelo::nitro::rngooglemapsplus { enum class RNIOSPermissionResult; }
111
113
  #include "JRNHeatmapPoint.hpp"
112
114
  #include "RNHeatmapGradient.hpp"
113
115
  #include "JRNHeatmapGradient.hpp"
116
+ #include "RNKMLayer.hpp"
117
+ #include "JRNKMLayer.hpp"
114
118
  #include "RNLocationConfig.hpp"
115
119
  #include "JRNLocationConfig.hpp"
116
120
  #include "RNAndroidLocationConfig.hpp"
@@ -398,6 +402,32 @@ namespace margelo::nitro::rngooglemapsplus {
398
402
  return __array;
399
403
  }() : nullptr);
400
404
  }
405
+ std::optional<std::vector<RNKMLayer>> JHybridRNGoogleMapsPlusViewSpec::getKmlLayers() {
406
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JRNKMLayer>>()>("getKmlLayers");
407
+ auto __result = method(_javaPart);
408
+ return __result != nullptr ? std::make_optional([&]() {
409
+ size_t __size = __result->size();
410
+ std::vector<RNKMLayer> __vector;
411
+ __vector.reserve(__size);
412
+ for (size_t __i = 0; __i < __size; __i++) {
413
+ auto __element = __result->getElement(__i);
414
+ __vector.push_back(__element->toCpp());
415
+ }
416
+ return __vector;
417
+ }()) : std::nullopt;
418
+ }
419
+ void JHybridRNGoogleMapsPlusViewSpec::setKmlLayers(const std::optional<std::vector<RNKMLayer>>& kmlLayers) {
420
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<JRNKMLayer>> /* kmlLayers */)>("setKmlLayers");
421
+ method(_javaPart, kmlLayers.has_value() ? [&]() {
422
+ size_t __size = kmlLayers.value().size();
423
+ jni::local_ref<jni::JArrayClass<JRNKMLayer>> __array = jni::JArrayClass<JRNKMLayer>::newArray(__size);
424
+ for (size_t __i = 0; __i < __size; __i++) {
425
+ const auto& __element = kmlLayers.value()[__i];
426
+ __array->setElement(__i, *JRNKMLayer::fromCpp(__element));
427
+ }
428
+ return __array;
429
+ }() : nullptr);
430
+ }
401
431
  std::optional<RNLocationConfig> JHybridRNGoogleMapsPlusViewSpec::getLocationConfig() {
402
432
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRNLocationConfig>()>("getLocationConfig");
403
433
  auto __result = method(_javaPart);
@@ -81,6 +81,8 @@ namespace margelo::nitro::rngooglemapsplus {
81
81
  void setCircles(const std::optional<std::vector<RNCircle>>& circles) override;
82
82
  std::optional<std::vector<RNHeatmap>> getHeatmaps() override;
83
83
  void setHeatmaps(const std::optional<std::vector<RNHeatmap>>& heatmaps) override;
84
+ std::optional<std::vector<RNKMLayer>> getKmlLayers() override;
85
+ void setKmlLayers(const std::optional<std::vector<RNKMLayer>>& kmlLayers) override;
84
86
  std::optional<RNLocationConfig> getLocationConfig() override;
85
87
  void setLocationConfig(const std::optional<RNLocationConfig>& locationConfig) override;
86
88
  std::optional<std::function<void(RNMapErrorCode /* error */)>> getOnMapError() override;
@@ -0,0 +1,57 @@
1
+ ///
2
+ /// JRNKMLayer.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 "RNKMLayer.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::rngooglemapsplus {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "RNKMLayer" and the the Kotlin data class "RNKMLayer".
21
+ */
22
+ struct JRNKMLayer final: public jni::JavaClass<JRNKMLayer> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/rngooglemapsplus/RNKMLayer;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct RNKMLayer by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ RNKMLayer toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldId = clazz->getField<jni::JString>("id");
35
+ jni::local_ref<jni::JString> id = this->getFieldValue(fieldId);
36
+ static const auto fieldKmlString = clazz->getField<jni::JString>("kmlString");
37
+ jni::local_ref<jni::JString> kmlString = this->getFieldValue(fieldKmlString);
38
+ return RNKMLayer(
39
+ id->toStdString(),
40
+ kmlString->toStdString()
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JRNKMLayer::javaobject> fromCpp(const RNKMLayer& value) {
50
+ return newInstance(
51
+ jni::make_jstring(value.id),
52
+ jni::make_jstring(value.kmlString)
53
+ );
54
+ }
55
+ };
56
+
57
+ } // namespace margelo::nitro::rngooglemapsplus
@@ -100,6 +100,10 @@ void JHybridRNGoogleMapsPlusViewStateUpdater::updateViewProps(jni::alias_ref<jni
100
100
  view->setHeatmaps(props.heatmaps.value);
101
101
  // TODO: Set isDirty = false
102
102
  }
103
+ if (props.kmlLayers.isDirty) {
104
+ view->setKmlLayers(props.kmlLayers.value);
105
+ // TODO: Set isDirty = false
106
+ }
103
107
  if (props.locationConfig.isDirty) {
104
108
  view->setLocationConfig(props.locationConfig.value);
105
109
  // TODO: Set isDirty = false
@@ -134,6 +134,12 @@ abstract class HybridRNGoogleMapsPlusViewSpec: HybridView() {
134
134
  @set:Keep
135
135
  abstract var heatmaps: Array<RNHeatmap>?
136
136
 
137
+ @get:DoNotStrip
138
+ @get:Keep
139
+ @set:DoNotStrip
140
+ @set:Keep
141
+ abstract var kmlLayers: Array<RNKMLayer>?
142
+
137
143
  @get:DoNotStrip
138
144
  @get:Keep
139
145
  @set:DoNotStrip
@@ -0,0 +1,32 @@
1
+ ///
2
+ /// RNKMLayer.kt
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
+ package com.rngooglemapsplus
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+
15
+ /**
16
+ * Represents the JavaScript object/struct "RNKMLayer".
17
+ */
18
+ @DoNotStrip
19
+ @Keep
20
+ data class RNKMLayer
21
+ @DoNotStrip
22
+ @Keep
23
+ constructor(
24
+ @DoNotStrip
25
+ @Keep
26
+ val id: String,
27
+ @DoNotStrip
28
+ @Keep
29
+ val kmlString: String
30
+ ) {
31
+ /* main constructor */
32
+ }
@@ -36,6 +36,8 @@ namespace margelo::nitro::rngooglemapsplus { struct RNIOSLocationConfig; }
36
36
  namespace margelo::nitro::rngooglemapsplus { enum class RNIOSPermissionResult; }
37
37
  // Forward declaration of `RNInitialProps` to properly resolve imports.
38
38
  namespace margelo::nitro::rngooglemapsplus { struct RNInitialProps; }
39
+ // Forward declaration of `RNKMLayer` to properly resolve imports.
40
+ namespace margelo::nitro::rngooglemapsplus { struct RNKMLayer; }
39
41
  // Forward declaration of `RNLatLng` to properly resolve imports.
40
42
  namespace margelo::nitro::rngooglemapsplus { struct RNLatLng; }
41
43
  // Forward declaration of `RNLineCapType` to properly resolve imports.
@@ -96,6 +98,7 @@ namespace RNGoogleMapsPlus { class HybridRNGoogleMapsPlusViewSpec_cxx; }
96
98
  #include "RNIOSLocationConfig.hpp"
97
99
  #include "RNIOSPermissionResult.hpp"
98
100
  #include "RNInitialProps.hpp"
101
+ #include "RNKMLayer.hpp"
99
102
  #include "RNLatLng.hpp"
100
103
  #include "RNLineCapType.hpp"
101
104
  #include "RNLineJoinType.hpp"
@@ -670,6 +673,32 @@ namespace margelo::nitro::rngooglemapsplus::bridge::swift {
670
673
  return *optional;
671
674
  }
672
675
 
676
+ // pragma MARK: std::vector<RNKMLayer>
677
+ /**
678
+ * Specialized version of `std::vector<RNKMLayer>`.
679
+ */
680
+ using std__vector_RNKMLayer_ = std::vector<RNKMLayer>;
681
+ inline std::vector<RNKMLayer> create_std__vector_RNKMLayer_(size_t size) noexcept {
682
+ std::vector<RNKMLayer> vector;
683
+ vector.reserve(size);
684
+ return vector;
685
+ }
686
+
687
+ // pragma MARK: std::optional<std::vector<RNKMLayer>>
688
+ /**
689
+ * Specialized version of `std::optional<std::vector<RNKMLayer>>`.
690
+ */
691
+ using std__optional_std__vector_RNKMLayer__ = std::optional<std::vector<RNKMLayer>>;
692
+ inline std::optional<std::vector<RNKMLayer>> create_std__optional_std__vector_RNKMLayer__(const std::vector<RNKMLayer>& value) noexcept {
693
+ return std::optional<std::vector<RNKMLayer>>(value);
694
+ }
695
+ inline bool has_value_std__optional_std__vector_RNKMLayer__(const std::optional<std::vector<RNKMLayer>>& optional) noexcept {
696
+ return optional.has_value();
697
+ }
698
+ inline std::vector<RNKMLayer> get_std__optional_std__vector_RNKMLayer__(const std::optional<std::vector<RNKMLayer>>& optional) noexcept {
699
+ return *optional;
700
+ }
701
+
673
702
  // pragma MARK: std::optional<RNAndroidLocationPriority>
674
703
  /**
675
704
  * Specialized version of `std::optional<RNAndroidLocationPriority>`.
@@ -36,6 +36,8 @@ namespace margelo::nitro::rngooglemapsplus { struct RNIOSLocationConfig; }
36
36
  namespace margelo::nitro::rngooglemapsplus { enum class RNIOSPermissionResult; }
37
37
  // Forward declaration of `RNInitialProps` to properly resolve imports.
38
38
  namespace margelo::nitro::rngooglemapsplus { struct RNInitialProps; }
39
+ // Forward declaration of `RNKMLayer` to properly resolve imports.
40
+ namespace margelo::nitro::rngooglemapsplus { struct RNKMLayer; }
39
41
  // Forward declaration of `RNLatLng` to properly resolve imports.
40
42
  namespace margelo::nitro::rngooglemapsplus { struct RNLatLng; }
41
43
  // Forward declaration of `RNLineCapType` to properly resolve imports.
@@ -90,6 +92,7 @@ namespace margelo::nitro::rngooglemapsplus { enum class RNUserInterfaceStyle; }
90
92
  #include "RNIOSLocationConfig.hpp"
91
93
  #include "RNIOSPermissionResult.hpp"
92
94
  #include "RNInitialProps.hpp"
95
+ #include "RNKMLayer.hpp"
93
96
  #include "RNLatLng.hpp"
94
97
  #include "RNLineCapType.hpp"
95
98
  #include "RNLineJoinType.hpp"
@@ -50,6 +50,8 @@ namespace margelo::nitro::rngooglemapsplus { struct RNHeatmap; }
50
50
  namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapPoint; }
51
51
  // Forward declaration of `RNHeatmapGradient` to properly resolve imports.
52
52
  namespace margelo::nitro::rngooglemapsplus { struct RNHeatmapGradient; }
53
+ // Forward declaration of `RNKMLayer` to properly resolve imports.
54
+ namespace margelo::nitro::rngooglemapsplus { struct RNKMLayer; }
53
55
  // Forward declaration of `RNLocationConfig` to properly resolve imports.
54
56
  namespace margelo::nitro::rngooglemapsplus { struct RNLocationConfig; }
55
57
  // Forward declaration of `RNAndroidLocationConfig` to properly resolve imports.
@@ -97,6 +99,7 @@ namespace margelo::nitro::rngooglemapsplus { enum class RNIOSPermissionResult; }
97
99
  #include "RNHeatmap.hpp"
98
100
  #include "RNHeatmapPoint.hpp"
99
101
  #include "RNHeatmapGradient.hpp"
102
+ #include "RNKMLayer.hpp"
100
103
  #include "RNLocationConfig.hpp"
101
104
  #include "RNAndroidLocationConfig.hpp"
102
105
  #include "RNAndroidLocationPriority.hpp"
@@ -261,6 +264,13 @@ namespace margelo::nitro::rngooglemapsplus {
261
264
  inline void setHeatmaps(const std::optional<std::vector<RNHeatmap>>& heatmaps) noexcept override {
262
265
  _swiftPart.setHeatmaps(heatmaps);
263
266
  }
267
+ inline std::optional<std::vector<RNKMLayer>> getKmlLayers() noexcept override {
268
+ auto __result = _swiftPart.getKmlLayers();
269
+ return __result;
270
+ }
271
+ inline void setKmlLayers(const std::optional<std::vector<RNKMLayer>>& kmlLayers) noexcept override {
272
+ _swiftPart.setKmlLayers(kmlLayers);
273
+ }
264
274
  inline std::optional<RNLocationConfig> getLocationConfig() noexcept override {
265
275
  auto __result = _swiftPart.getLocationConfig();
266
276
  return __result;
@@ -151,6 +151,11 @@ using namespace margelo::nitro::rngooglemapsplus::views;
151
151
  swiftPart.setHeatmaps(newViewProps.heatmaps.value);
152
152
  newViewProps.heatmaps.isDirty = false;
153
153
  }
154
+ // kmlLayers: optional
155
+ if (newViewProps.kmlLayers.isDirty) {
156
+ swiftPart.setKmlLayers(newViewProps.kmlLayers.value);
157
+ newViewProps.kmlLayers.isDirty = false;
158
+ }
154
159
  // locationConfig: optional
155
160
  if (newViewProps.locationConfig.isDirty) {
156
161
  swiftPart.setLocationConfig(newViewProps.locationConfig.value);
@@ -27,6 +27,7 @@ public protocol HybridRNGoogleMapsPlusViewSpec_protocol: HybridObject, HybridVie
27
27
  var polylines: [RNPolyline]? { get set }
28
28
  var circles: [RNCircle]? { get set }
29
29
  var heatmaps: [RNHeatmap]? { get set }
30
+ var kmlLayers: [RNKMLayer]? { get set }
30
31
  var locationConfig: RNLocationConfig? { get set }
31
32
  var onMapError: ((_ error: RNMapErrorCode) -> Void)? { get set }
32
33
  var onMapReady: ((_ ready: Bool) -> Void)? { get set }
@@ -478,6 +478,36 @@ open class HybridRNGoogleMapsPlusViewSpec_cxx {
478
478
  }
479
479
  }
480
480
 
481
+ public final var kmlLayers: bridge.std__optional_std__vector_RNKMLayer__ {
482
+ @inline(__always)
483
+ get {
484
+ return { () -> bridge.std__optional_std__vector_RNKMLayer__ in
485
+ if let __unwrappedValue = self.__implementation.kmlLayers {
486
+ return bridge.create_std__optional_std__vector_RNKMLayer__({ () -> bridge.std__vector_RNKMLayer_ in
487
+ var __vector = bridge.create_std__vector_RNKMLayer_(__unwrappedValue.count)
488
+ for __item in __unwrappedValue {
489
+ __vector.push_back(__item)
490
+ }
491
+ return __vector
492
+ }())
493
+ } else {
494
+ return .init()
495
+ }
496
+ }()
497
+ }
498
+ @inline(__always)
499
+ set {
500
+ self.__implementation.kmlLayers = { () -> [RNKMLayer]? in
501
+ if bridge.has_value_std__optional_std__vector_RNKMLayer__(newValue) {
502
+ let __unwrapped = bridge.get_std__optional_std__vector_RNKMLayer__(newValue)
503
+ return __unwrapped.map({ __item in __item })
504
+ } else {
505
+ return nil
506
+ }
507
+ }()
508
+ }
509
+ }
510
+
481
511
  public final var locationConfig: bridge.std__optional_RNLocationConfig_ {
482
512
  @inline(__always)
483
513
  get {
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// RNKMLayer.swift
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
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `RNKMLayer`, backed by a C++ struct.
12
+ */
13
+ public typealias RNKMLayer = margelo.nitro.rngooglemapsplus.RNKMLayer
14
+
15
+ public extension RNKMLayer {
16
+ private typealias bridge = margelo.nitro.rngooglemapsplus.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `RNKMLayer`.
20
+ */
21
+ init(id: String, kmlString: String) {
22
+ self.init(std.string(id), std.string(kmlString))
23
+ }
24
+
25
+ var id: String {
26
+ @inline(__always)
27
+ get {
28
+ return String(self.__id)
29
+ }
30
+ @inline(__always)
31
+ set {
32
+ self.__id = std.string(newValue)
33
+ }
34
+ }
35
+
36
+ var kmlString: String {
37
+ @inline(__always)
38
+ get {
39
+ return String(self.__kmlString)
40
+ }
41
+ @inline(__always)
42
+ set {
43
+ self.__kmlString = std.string(newValue)
44
+ }
45
+ }
46
+ }
@@ -46,6 +46,8 @@ namespace margelo::nitro::rngooglemapsplus {
46
46
  prototype.registerHybridSetter("circles", &HybridRNGoogleMapsPlusViewSpec::setCircles);
47
47
  prototype.registerHybridGetter("heatmaps", &HybridRNGoogleMapsPlusViewSpec::getHeatmaps);
48
48
  prototype.registerHybridSetter("heatmaps", &HybridRNGoogleMapsPlusViewSpec::setHeatmaps);
49
+ prototype.registerHybridGetter("kmlLayers", &HybridRNGoogleMapsPlusViewSpec::getKmlLayers);
50
+ prototype.registerHybridSetter("kmlLayers", &HybridRNGoogleMapsPlusViewSpec::setKmlLayers);
49
51
  prototype.registerHybridGetter("locationConfig", &HybridRNGoogleMapsPlusViewSpec::getLocationConfig);
50
52
  prototype.registerHybridSetter("locationConfig", &HybridRNGoogleMapsPlusViewSpec::setLocationConfig);
51
53
  prototype.registerHybridGetter("onMapError", &HybridRNGoogleMapsPlusViewSpec::getOnMapError);
@@ -35,6 +35,8 @@ namespace margelo::nitro::rngooglemapsplus { struct RNPolyline; }
35
35
  namespace margelo::nitro::rngooglemapsplus { struct RNCircle; }
36
36
  // Forward declaration of `RNHeatmap` to properly resolve imports.
37
37
  namespace margelo::nitro::rngooglemapsplus { struct RNHeatmap; }
38
+ // Forward declaration of `RNKMLayer` to properly resolve imports.
39
+ namespace margelo::nitro::rngooglemapsplus { struct RNKMLayer; }
38
40
  // Forward declaration of `RNLocationConfig` to properly resolve imports.
39
41
  namespace margelo::nitro::rngooglemapsplus { struct RNLocationConfig; }
40
42
  // Forward declaration of `RNMapErrorCode` to properly resolve imports.
@@ -66,6 +68,7 @@ namespace margelo::nitro::rngooglemapsplus { struct RNLocationPermissionResult;
66
68
  #include "RNPolyline.hpp"
67
69
  #include "RNCircle.hpp"
68
70
  #include "RNHeatmap.hpp"
71
+ #include "RNKMLayer.hpp"
69
72
  #include "RNLocationConfig.hpp"
70
73
  #include "RNMapErrorCode.hpp"
71
74
  #include <functional>
@@ -136,6 +139,8 @@ namespace margelo::nitro::rngooglemapsplus {
136
139
  virtual void setCircles(const std::optional<std::vector<RNCircle>>& circles) = 0;
137
140
  virtual std::optional<std::vector<RNHeatmap>> getHeatmaps() = 0;
138
141
  virtual void setHeatmaps(const std::optional<std::vector<RNHeatmap>>& heatmaps) = 0;
142
+ virtual std::optional<std::vector<RNKMLayer>> getKmlLayers() = 0;
143
+ virtual void setKmlLayers(const std::optional<std::vector<RNKMLayer>>& kmlLayers) = 0;
139
144
  virtual std::optional<RNLocationConfig> getLocationConfig() = 0;
140
145
  virtual void setLocationConfig(const std::optional<RNLocationConfig>& locationConfig) = 0;
141
146
  virtual std::optional<std::function<void(RNMapErrorCode /* error */)>> getOnMapError() = 0;
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// RNKMLayer.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+ #include <string>
24
+
25
+ namespace margelo::nitro::rngooglemapsplus {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (RNKMLayer).
29
+ */
30
+ struct RNKMLayer {
31
+ public:
32
+ std::string id SWIFT_PRIVATE;
33
+ std::string kmlString SWIFT_PRIVATE;
34
+
35
+ public:
36
+ RNKMLayer() = default;
37
+ explicit RNKMLayer(std::string id, std::string kmlString): id(id), kmlString(kmlString) {}
38
+ };
39
+
40
+ } // namespace margelo::nitro::rngooglemapsplus
41
+
42
+ namespace margelo::nitro {
43
+
44
+ // C++ RNKMLayer <> JS RNKMLayer (object)
45
+ template <>
46
+ struct JSIConverter<margelo::nitro::rngooglemapsplus::RNKMLayer> final {
47
+ static inline margelo::nitro::rngooglemapsplus::RNKMLayer fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
48
+ jsi::Object obj = arg.asObject(runtime);
49
+ return margelo::nitro::rngooglemapsplus::RNKMLayer(
50
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "id")),
51
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "kmlString"))
52
+ );
53
+ }
54
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::rngooglemapsplus::RNKMLayer& arg) {
55
+ jsi::Object obj(runtime);
56
+ obj.setProperty(runtime, "id", JSIConverter<std::string>::toJSI(runtime, arg.id));
57
+ obj.setProperty(runtime, "kmlString", JSIConverter<std::string>::toJSI(runtime, arg.kmlString));
58
+ return obj;
59
+ }
60
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
61
+ if (!value.isObject()) {
62
+ return false;
63
+ }
64
+ jsi::Object obj = value.getObject(runtime);
65
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "id"))) return false;
66
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "kmlString"))) return false;
67
+ return true;
68
+ }
69
+ };
70
+
71
+ } // namespace margelo::nitro
@@ -185,6 +185,16 @@ namespace margelo::nitro::rngooglemapsplus::views {
185
185
  throw std::runtime_error(std::string("RNGoogleMapsPlusView.heatmaps: ") + exc.what());
186
186
  }
187
187
  }()),
188
+ kmlLayers([&]() -> CachedProp<std::optional<std::vector<RNKMLayer>>> {
189
+ try {
190
+ const react::RawValue* rawValue = rawProps.at("kmlLayers", nullptr, nullptr);
191
+ if (rawValue == nullptr) return sourceProps.kmlLayers;
192
+ const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
193
+ return CachedProp<std::optional<std::vector<RNKMLayer>>>::fromRawValue(*runtime, value, sourceProps.kmlLayers);
194
+ } catch (const std::exception& exc) {
195
+ throw std::runtime_error(std::string("RNGoogleMapsPlusView.kmlLayers: ") + exc.what());
196
+ }
197
+ }()),
188
198
  locationConfig([&]() -> CachedProp<std::optional<RNLocationConfig>> {
189
199
  try {
190
200
  const react::RawValue* rawValue = rawProps.at("locationConfig", nullptr, nullptr);
@@ -344,6 +354,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
344
354
  polylines(other.polylines),
345
355
  circles(other.circles),
346
356
  heatmaps(other.heatmaps),
357
+ kmlLayers(other.kmlLayers),
347
358
  locationConfig(other.locationConfig),
348
359
  onMapError(other.onMapError),
349
360
  onMapReady(other.onMapReady),
@@ -377,6 +388,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
377
388
  case hashString("polylines"): return true;
378
389
  case hashString("circles"): return true;
379
390
  case hashString("heatmaps"): return true;
391
+ case hashString("kmlLayers"): return true;
380
392
  case hashString("locationConfig"): return true;
381
393
  case hashString("onMapError"): return true;
382
394
  case hashString("onMapReady"): return true;
@@ -30,6 +30,7 @@
30
30
  #include "RNPolyline.hpp"
31
31
  #include "RNCircle.hpp"
32
32
  #include "RNHeatmap.hpp"
33
+ #include "RNKMLayer.hpp"
33
34
  #include "RNLocationConfig.hpp"
34
35
  #include "RNMapErrorCode.hpp"
35
36
  #include <functional>
@@ -78,6 +79,7 @@ namespace margelo::nitro::rngooglemapsplus::views {
78
79
  CachedProp<std::optional<std::vector<RNPolyline>>> polylines;
79
80
  CachedProp<std::optional<std::vector<RNCircle>>> circles;
80
81
  CachedProp<std::optional<std::vector<RNHeatmap>>> heatmaps;
82
+ CachedProp<std::optional<std::vector<RNKMLayer>>> kmlLayers;
81
83
  CachedProp<std::optional<RNLocationConfig>> locationConfig;
82
84
  CachedProp<std::optional<std::function<void(RNMapErrorCode /* error */)>>> onMapError;
83
85
  CachedProp<std::optional<std::function<void(bool /* ready */)>>> onMapReady;
@@ -20,6 +20,7 @@
20
20
  "polylines": true,
21
21
  "circles": true,
22
22
  "heatmaps": true,
23
+ "kmlLayers": true,
23
24
  "locationConfig": true,
24
25
  "onMapError": true,
25
26
  "onMapReady": true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-google-maps-plus",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "React-native wrapper for android & IOS google maps sdk",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -23,6 +23,7 @@ import type {
23
23
  RNLocationConfig,
24
24
  RNMapZoomConfig,
25
25
  RNHeatmap,
26
+ RNKMLayer,
26
27
  } from './types';
27
28
 
28
29
  export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
@@ -42,6 +43,7 @@ export interface RNGoogleMapsPlusViewProps extends HybridViewProps {
42
43
  polylines?: RNPolyline[];
43
44
  circles?: RNCircle[];
44
45
  heatmaps?: RNHeatmap[];
46
+ kmlLayers?: RNKMLayer[];
45
47
  locationConfig?: RNLocationConfig;
46
48
  onMapError?: (error: RNMapErrorCode) => void;
47
49
  onMapReady?: (ready: boolean) => void;
package/src/types.ts CHANGED
@@ -199,6 +199,11 @@ export type RNHeatmapGradient = {
199
199
  colorMapSize: number;
200
200
  };
201
201
 
202
+ export type RNKMLayer = {
203
+ id: string;
204
+ kmlString: string;
205
+ };
206
+
202
207
  export type RNLocationConfig = {
203
208
  android?: RNAndroidLocationConfig;
204
209
  ios?: RNIOSLocationConfig;