@maydon_tech/react-native-nitro-maps 0.1.3 → 0.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 (218) hide show
  1. package/LICENSE +1 -1
  2. package/NitroMap.podspec +1 -1
  3. package/README.md +82 -9
  4. package/android/CMakeLists.txt +4 -1
  5. package/android/gradle.properties +4 -4
  6. package/android/src/main/cpp/ClusterEngineJNI.cpp +198 -0
  7. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMap.kt +397 -0
  8. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapConfig.kt +53 -0
  9. package/android/src/main/{java → kotlin}/com/margelo/nitro/nitromap/NitroMapPackage.kt +4 -4
  10. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapView.kt +73 -0
  11. package/android/src/main/kotlin/com/margelo/nitro/nitromap/UserLocationManager.kt +295 -0
  12. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusterIconRenderer.kt +111 -0
  13. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusteringManager.kt +104 -0
  14. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +166 -0
  15. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerIconFactory.kt +303 -0
  16. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerSelectionHandler.kt +72 -0
  17. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/PriceMarkerRenderer.kt +159 -0
  18. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderFactory.kt +24 -0
  19. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +128 -0
  20. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapDelegate.kt +317 -0
  21. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Clustering.kt +524 -0
  22. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Markers.kt +358 -0
  23. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Overlays.kt +272 -0
  24. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+UserLocation.kt +296 -0
  25. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider.kt +815 -0
  26. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/MarkerTagData.kt +19 -0
  27. package/ios/Clustering/ClusterIconRenderer.swift +3 -3
  28. package/ios/Location/NitroLocationManager.swift +116 -0
  29. package/ios/MarkerRenderer/MarkerIconFactory.swift +1 -3
  30. package/ios/MarkerRenderer/PriceMarkerRenderer.swift +10 -6
  31. package/ios/NitroMap.swift +279 -13
  32. package/ios/NitroMapConfig/NitroMapConfig.swift +45 -0
  33. package/ios/Providers/{GoogleMapDelegate.swift → Google/GoogleMapDelegate.swift} +48 -23
  34. package/ios/Providers/Google/GoogleMapProvider+Camera.swift +180 -0
  35. package/ios/Providers/Google/GoogleMapProvider+Clustering.swift +541 -0
  36. package/ios/Providers/Google/GoogleMapProvider+Markers.swift +270 -0
  37. package/ios/Providers/Google/GoogleMapProvider+Overlays.swift +245 -0
  38. package/ios/Providers/Google/GoogleMapProvider+UserLocation.swift +180 -0
  39. package/ios/Providers/Google/GoogleMapProvider.swift +342 -0
  40. package/ios/Providers/MapProviderFactory.swift +17 -0
  41. package/ios/Providers/MapProviderProtocol.swift +48 -1
  42. package/ios/Shared/ClusterConfig+Factory.swift +2 -2
  43. package/ios/Shared/MapStyleProvider.swift +6 -4
  44. package/ios/Shared/MarkerSelectionHandler.swift +4 -1
  45. package/ios/Utils/ColorValueExtension.swift +46 -67
  46. package/lib/module/components/ImageMarker.js +39 -29
  47. package/lib/module/components/ImageMarker.js.map +1 -1
  48. package/lib/module/components/Marker.js +118 -0
  49. package/lib/module/components/Marker.js.map +1 -0
  50. package/lib/module/components/NitroCircle.js +92 -0
  51. package/lib/module/components/NitroCircle.js.map +1 -0
  52. package/lib/module/components/NitroMap.js +216 -76
  53. package/lib/module/components/NitroMap.js.map +1 -1
  54. package/lib/module/components/NitroPolygon.js +135 -0
  55. package/lib/module/components/NitroPolygon.js.map +1 -0
  56. package/lib/module/components/NitroPolyline.js +115 -0
  57. package/lib/module/components/NitroPolyline.js.map +1 -0
  58. package/lib/module/components/PriceMarker.js +16 -29
  59. package/lib/module/components/PriceMarker.js.map +1 -1
  60. package/lib/module/context/NitroMapContext.js.map +1 -1
  61. package/lib/module/hooks/useNitroCircle.js +18 -0
  62. package/lib/module/hooks/useNitroCircle.js.map +1 -0
  63. package/lib/module/hooks/useNitroMarker.js +26 -9
  64. package/lib/module/hooks/useNitroMarker.js.map +1 -1
  65. package/lib/module/hooks/useNitroOverlay.js +59 -0
  66. package/lib/module/hooks/useNitroOverlay.js.map +1 -0
  67. package/lib/module/hooks/useNitroPolygon.js +18 -0
  68. package/lib/module/hooks/useNitroPolygon.js.map +1 -0
  69. package/lib/module/hooks/useNitroPolyline.js +18 -0
  70. package/lib/module/hooks/useNitroPolyline.js.map +1 -0
  71. package/lib/module/index.js +5 -0
  72. package/lib/module/index.js.map +1 -1
  73. package/lib/module/types/overlay.js +4 -0
  74. package/lib/module/types/overlay.js.map +1 -0
  75. package/lib/module/types/theme.js +4 -0
  76. package/lib/module/types/theme.js.map +1 -0
  77. package/lib/module/utils/colors.js +41 -13
  78. package/lib/module/utils/colors.js.map +1 -1
  79. package/lib/module/utils/validation.js +45 -0
  80. package/lib/module/utils/validation.js.map +1 -0
  81. package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -1
  82. package/lib/typescript/src/components/Marker.d.ts +34 -0
  83. package/lib/typescript/src/components/Marker.d.ts.map +1 -0
  84. package/lib/typescript/src/components/NitroCircle.d.ts +70 -0
  85. package/lib/typescript/src/components/NitroCircle.d.ts.map +1 -0
  86. package/lib/typescript/src/components/NitroMap.d.ts +60 -3
  87. package/lib/typescript/src/components/NitroMap.d.ts.map +1 -1
  88. package/lib/typescript/src/components/NitroPolygon.d.ts +86 -0
  89. package/lib/typescript/src/components/NitroPolygon.d.ts.map +1 -0
  90. package/lib/typescript/src/components/NitroPolyline.d.ts +84 -0
  91. package/lib/typescript/src/components/NitroPolyline.d.ts.map +1 -0
  92. package/lib/typescript/src/components/PriceMarker.d.ts +0 -5
  93. package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -1
  94. package/lib/typescript/src/context/NitroMapContext.d.ts +2 -0
  95. package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -1
  96. package/lib/typescript/src/hooks/useNitroCircle.d.ts +7 -0
  97. package/lib/typescript/src/hooks/useNitroCircle.d.ts.map +1 -0
  98. package/lib/typescript/src/hooks/useNitroMarker.d.ts +20 -0
  99. package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -1
  100. package/lib/typescript/src/hooks/useNitroOverlay.d.ts +26 -0
  101. package/lib/typescript/src/hooks/useNitroOverlay.d.ts.map +1 -0
  102. package/lib/typescript/src/hooks/useNitroPolygon.d.ts +7 -0
  103. package/lib/typescript/src/hooks/useNitroPolygon.d.ts.map +1 -0
  104. package/lib/typescript/src/hooks/useNitroPolyline.d.ts +7 -0
  105. package/lib/typescript/src/hooks/useNitroPolyline.d.ts.map +1 -0
  106. package/lib/typescript/src/index.d.ts +15 -2
  107. package/lib/typescript/src/index.d.ts.map +1 -1
  108. package/lib/typescript/src/specs/NitroMap.nitro.d.ts +248 -6
  109. package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -1
  110. package/lib/typescript/src/types/map.d.ts +34 -4
  111. package/lib/typescript/src/types/map.d.ts.map +1 -1
  112. package/lib/typescript/src/types/marker.d.ts +24 -36
  113. package/lib/typescript/src/types/marker.d.ts.map +1 -1
  114. package/lib/typescript/src/types/overlay.d.ts +75 -0
  115. package/lib/typescript/src/types/overlay.d.ts.map +1 -0
  116. package/lib/typescript/src/types/theme.d.ts +93 -0
  117. package/lib/typescript/src/types/theme.d.ts.map +1 -0
  118. package/lib/typescript/src/utils/colors.d.ts +6 -8
  119. package/lib/typescript/src/utils/colors.d.ts.map +1 -1
  120. package/lib/typescript/src/utils/validation.d.ts +12 -0
  121. package/lib/typescript/src/utils/validation.d.ts.map +1 -0
  122. package/nitrogen/generated/android/c++/JCircleData.hpp +94 -0
  123. package/nitrogen/generated/android/c++/JClusterConfig.hpp +5 -7
  124. package/nitrogen/generated/android/c++/JFunc_void_UserLocationChangeEvent.hpp +79 -0
  125. package/nitrogen/generated/android/c++/JFunc_void_UserTrackingMode.hpp +77 -0
  126. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  127. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +328 -21
  128. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +53 -2
  129. package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +3 -6
  130. package/nitrogen/generated/android/c++/JMarkerData.hpp +15 -3
  131. package/nitrogen/generated/android/c++/JPolygonData.hpp +149 -0
  132. package/nitrogen/generated/android/c++/JPolylineData.hpp +113 -0
  133. package/nitrogen/generated/android/c++/JUserLocationChangeEvent.hpp +70 -0
  134. package/nitrogen/generated/android/c++/JUserTrackingMode.hpp +62 -0
  135. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +72 -4
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CircleData.kt +62 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +4 -4
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserLocationChangeEvent.kt +80 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserTrackingMode.kt +80 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_std__string.kt +80 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +228 -2
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +1 -2
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +12 -3
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolygonData.kt +62 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolylineData.kt +62 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/UserLocationChangeEvent.kt +47 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/{ClusterAnimationStyle.kt → UserTrackingMode.kt} +6 -8
  148. package/nitrogen/generated/android/nitromapOnLoad.cpp +6 -0
  149. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +24 -0
  150. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +175 -17
  151. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +15 -3
  152. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +249 -16
  153. package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +90 -5
  154. package/nitrogen/generated/ios/swift/CircleData.swift +143 -0
  155. package/nitrogen/generated/ios/swift/ClusterConfig.swift +22 -15
  156. package/nitrogen/generated/ios/swift/Func_void_UserLocationChangeEvent.swift +47 -0
  157. package/nitrogen/generated/ios/swift/Func_void_UserTrackingMode.swift +47 -0
  158. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  159. package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +35 -1
  160. package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +582 -8
  161. package/nitrogen/generated/ios/swift/MarkerAnimation.swift +4 -8
  162. package/nitrogen/generated/ios/swift/MarkerData.swift +54 -2
  163. package/nitrogen/generated/ios/swift/PolygonData.swift +179 -0
  164. package/nitrogen/generated/ios/swift/PolylineData.swift +155 -0
  165. package/nitrogen/generated/ios/swift/UserLocationChangeEvent.swift +69 -0
  166. package/nitrogen/generated/ios/swift/UserTrackingMode.swift +44 -0
  167. package/nitrogen/generated/shared/c++/CircleData.hpp +113 -0
  168. package/nitrogen/generated/shared/c++/ClusterConfig.hpp +5 -8
  169. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +53 -2
  170. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +75 -6
  171. package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +4 -8
  172. package/nitrogen/generated/shared/c++/MarkerData.hpp +14 -2
  173. package/nitrogen/generated/shared/c++/PolygonData.hpp +114 -0
  174. package/nitrogen/generated/shared/c++/PolylineData.hpp +114 -0
  175. package/nitrogen/generated/shared/c++/UserLocationChangeEvent.hpp +88 -0
  176. package/nitrogen/generated/shared/c++/UserTrackingMode.hpp +80 -0
  177. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +216 -12
  178. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +23 -1
  179. package/nitrogen/generated/shared/json/NitroMapConfig.json +18 -1
  180. package/package.json +36 -5
  181. package/src/components/ImageMarker.tsx +58 -42
  182. package/src/components/Marker.tsx +161 -0
  183. package/src/components/NitroCircle.tsx +183 -0
  184. package/src/components/NitroMap.tsx +328 -78
  185. package/src/components/NitroPolygon.tsx +229 -0
  186. package/src/components/NitroPolyline.tsx +208 -0
  187. package/src/components/PriceMarker.tsx +23 -48
  188. package/src/context/NitroMapContext.tsx +4 -0
  189. package/src/hooks/useNitroCircle.ts +25 -0
  190. package/src/hooks/useNitroMarker.ts +49 -10
  191. package/src/hooks/useNitroOverlay.ts +68 -0
  192. package/src/hooks/useNitroPolygon.ts +25 -0
  193. package/src/hooks/useNitroPolyline.ts +25 -0
  194. package/src/index.tsx +23 -2
  195. package/src/specs/NitroMap.nitro.ts +294 -5
  196. package/src/types/map.ts +36 -4
  197. package/src/types/marker.ts +24 -44
  198. package/src/types/overlay.ts +77 -0
  199. package/src/types/theme.ts +101 -0
  200. package/src/utils/colors.ts +48 -16
  201. package/src/utils/validation.ts +69 -0
  202. package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +0 -108
  203. package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +0 -63
  204. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +0 -408
  205. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +0 -68
  206. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +0 -176
  207. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +0 -252
  208. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +0 -252
  209. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +0 -195
  210. package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +0 -912
  211. package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +0 -70
  212. package/cpp/QuadTree.hpp +0 -246
  213. package/ios/NitroMapConfig/HybridNitroMapConfig.swift +0 -33
  214. package/ios/Providers/GoogleMapProvider+Camera.swift +0 -164
  215. package/ios/Providers/GoogleMapProvider.swift +0 -924
  216. package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +0 -68
  217. package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +0 -52
  218. package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +0 -88
@@ -19,7 +19,7 @@ public extension ClusterConfig {
19
19
  /**
20
20
  * Create a new instance of `ClusterConfig`.
21
21
  */
22
- init(enabled: Bool, strategy: ClusterStrategy?, radius: Double?, minimumClusterSize: Double?, maxZoom: Double?, backgroundColor: Variant_String_MarkerColor?, textColor: Variant_String_MarkerColor?, borderWidth: Double?, borderColor: Variant_String_MarkerColor?, animatesClusters: Bool?, animationDuration: Double?, animationStyle: ClusterAnimationStyle?, realtimeClustering: Bool?, renderBuffer: Double?, throttleInterval: Double?) {
22
+ init(enabled: Bool, strategy: ClusterStrategy?, radius: Double?, minimumClusterSize: Double?, maxZoom: Double?, backgroundColor: Variant_String_MarkerColor?, textColor: Variant_String_MarkerColor?, borderWidth: Double?, borderColor: Variant_String_MarkerColor?, animatesClusters: Bool?, animateOnReappear: Bool?, animationDuration: Double?, realtimeClustering: Bool?, renderBuffer: Double?, throttleInterval: Double?) {
23
23
  self.init(enabled, { () -> bridge.std__optional_ClusterStrategy_ in
24
24
  if let __unwrappedValue = strategy {
25
25
  return bridge.create_std__optional_ClusterStrategy_(__unwrappedValue)
@@ -95,15 +95,15 @@ public extension ClusterConfig {
95
95
  } else {
96
96
  return .init()
97
97
  }
98
- }(), { () -> bridge.std__optional_double_ in
99
- if let __unwrappedValue = animationDuration {
100
- return bridge.create_std__optional_double_(__unwrappedValue)
98
+ }(), { () -> bridge.std__optional_bool_ in
99
+ if let __unwrappedValue = animateOnReappear {
100
+ return bridge.create_std__optional_bool_(__unwrappedValue)
101
101
  } else {
102
102
  return .init()
103
103
  }
104
- }(), { () -> bridge.std__optional_ClusterAnimationStyle_ in
105
- if let __unwrappedValue = animationStyle {
106
- return bridge.create_std__optional_ClusterAnimationStyle_(__unwrappedValue)
104
+ }(), { () -> bridge.std__optional_double_ in
105
+ if let __unwrappedValue = animationDuration {
106
+ return bridge.create_std__optional_double_(__unwrappedValue)
107
107
  } else {
108
108
  return .init()
109
109
  }
@@ -377,16 +377,23 @@ public extension ClusterConfig {
377
377
  }
378
378
  }
379
379
 
380
- var animationDuration: Double? {
380
+ var animateOnReappear: Bool? {
381
381
  @inline(__always)
382
382
  get {
383
- return self.__animationDuration.value
383
+ return { () -> Bool? in
384
+ if bridge.has_value_std__optional_bool_(self.__animateOnReappear) {
385
+ let __unwrapped = bridge.get_std__optional_bool_(self.__animateOnReappear)
386
+ return __unwrapped
387
+ } else {
388
+ return nil
389
+ }
390
+ }()
384
391
  }
385
392
  @inline(__always)
386
393
  set {
387
- self.__animationDuration = { () -> bridge.std__optional_double_ in
394
+ self.__animateOnReappear = { () -> bridge.std__optional_bool_ in
388
395
  if let __unwrappedValue = newValue {
389
- return bridge.create_std__optional_double_(__unwrappedValue)
396
+ return bridge.create_std__optional_bool_(__unwrappedValue)
390
397
  } else {
391
398
  return .init()
392
399
  }
@@ -394,16 +401,16 @@ public extension ClusterConfig {
394
401
  }
395
402
  }
396
403
 
397
- var animationStyle: ClusterAnimationStyle? {
404
+ var animationDuration: Double? {
398
405
  @inline(__always)
399
406
  get {
400
- return self.__animationStyle.value
407
+ return self.__animationDuration.value
401
408
  }
402
409
  @inline(__always)
403
410
  set {
404
- self.__animationStyle = { () -> bridge.std__optional_ClusterAnimationStyle_ in
411
+ self.__animationDuration = { () -> bridge.std__optional_double_ in
405
412
  if let __unwrappedValue = newValue {
406
- return bridge.create_std__optional_ClusterAnimationStyle_(__unwrappedValue)
413
+ return bridge.create_std__optional_double_(__unwrappedValue)
407
414
  } else {
408
415
  return .init()
409
416
  }
@@ -0,0 +1,47 @@
1
+ ///
2
+ /// Func_void_UserLocationChangeEvent.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Wraps a Swift `(_ event: UserLocationChangeEvent) -> Void` as a class.
13
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
14
+ */
15
+ public final class Func_void_UserLocationChangeEvent {
16
+ public typealias bridge = margelo.nitro.nitromap.bridge.swift
17
+
18
+ private let closure: (_ event: UserLocationChangeEvent) -> Void
19
+
20
+ public init(_ closure: @escaping (_ event: UserLocationChangeEvent) -> Void) {
21
+ self.closure = closure
22
+ }
23
+
24
+ @inline(__always)
25
+ public func call(event: UserLocationChangeEvent) -> Void {
26
+ self.closure(event)
27
+ }
28
+
29
+ /**
30
+ * Casts this instance to a retained unsafe raw pointer.
31
+ * This acquires one additional strong reference on the object!
32
+ */
33
+ @inline(__always)
34
+ public func toUnsafe() -> UnsafeMutableRawPointer {
35
+ return Unmanaged.passRetained(self).toOpaque()
36
+ }
37
+
38
+ /**
39
+ * Casts an unsafe pointer to a `Func_void_UserLocationChangeEvent`.
40
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_UserLocationChangeEvent>`.
41
+ * This removes one strong reference from the object!
42
+ */
43
+ @inline(__always)
44
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_UserLocationChangeEvent {
45
+ return Unmanaged<Func_void_UserLocationChangeEvent>.fromOpaque(pointer).takeRetainedValue()
46
+ }
47
+ }
@@ -0,0 +1,47 @@
1
+ ///
2
+ /// Func_void_UserTrackingMode.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Wraps a Swift `(_ mode: UserTrackingMode) -> Void` as a class.
13
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
14
+ */
15
+ public final class Func_void_UserTrackingMode {
16
+ public typealias bridge = margelo.nitro.nitromap.bridge.swift
17
+
18
+ private let closure: (_ mode: UserTrackingMode) -> Void
19
+
20
+ public init(_ closure: @escaping (_ mode: UserTrackingMode) -> Void) {
21
+ self.closure = closure
22
+ }
23
+
24
+ @inline(__always)
25
+ public func call(mode: Int32) -> Void {
26
+ self.closure(margelo.nitro.nitromap.UserTrackingMode(rawValue: mode)!)
27
+ }
28
+
29
+ /**
30
+ * Casts this instance to a retained unsafe raw pointer.
31
+ * This acquires one additional strong reference on the object!
32
+ */
33
+ @inline(__always)
34
+ public func toUnsafe() -> UnsafeMutableRawPointer {
35
+ return Unmanaged.passRetained(self).toOpaque()
36
+ }
37
+
38
+ /**
39
+ * Casts an unsafe pointer to a `Func_void_UserTrackingMode`.
40
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_UserTrackingMode>`.
41
+ * This removes one strong reference from the object!
42
+ */
43
+ @inline(__always)
44
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_UserTrackingMode {
45
+ return Unmanaged<Func_void_UserTrackingMode>.fromOpaque(pointer).takeRetainedValue()
46
+ }
47
+ }
@@ -0,0 +1,47 @@
1
+ ///
2
+ /// Func_void_std__string.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Wraps a Swift `(_ id: String) -> Void` as a class.
13
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
14
+ */
15
+ public final class Func_void_std__string {
16
+ public typealias bridge = margelo.nitro.nitromap.bridge.swift
17
+
18
+ private let closure: (_ id: String) -> Void
19
+
20
+ public init(_ closure: @escaping (_ id: String) -> Void) {
21
+ self.closure = closure
22
+ }
23
+
24
+ @inline(__always)
25
+ public func call(id: std.string) -> Void {
26
+ self.closure(String(id))
27
+ }
28
+
29
+ /**
30
+ * Casts this instance to a retained unsafe raw pointer.
31
+ * This acquires one additional strong reference on the object!
32
+ */
33
+ @inline(__always)
34
+ public func toUnsafe() -> UnsafeMutableRawPointer {
35
+ return Unmanaged.passRetained(self).toOpaque()
36
+ }
37
+
38
+ /**
39
+ * Casts an unsafe pointer to a `Func_void_std__string`.
40
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_std__string>`.
41
+ * This removes one strong reference from the object!
42
+ */
43
+ @inline(__always)
44
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_std__string {
45
+ return Unmanaged<Func_void_std__string>.fromOpaque(pointer).takeRetainedValue()
46
+ }
47
+ }
@@ -13,6 +13,7 @@ public protocol HybridNitroMapSpec_protocol: HybridObject, HybridView {
13
13
  // Properties
14
14
  var provider: MapProvider? { get set }
15
15
  var initialRegion: Region? { get set }
16
+ var region: Region? { get set }
16
17
  var showsUserLocation: Bool? { get set }
17
18
  var zoomEnabled: Bool? { get set }
18
19
  var scrollEnabled: Bool? { get set }
@@ -20,9 +21,18 @@ public protocol HybridNitroMapSpec_protocol: HybridObject, HybridView {
20
21
  var pitchEnabled: Bool? { get set }
21
22
  var mapType: MapType? { get set }
22
23
  var customMapStyle: [MapStyleElement]? { get set }
23
- var showsMyLocationButton: Bool? { get set }
24
24
  var clusterConfig: ClusterConfig? { get set }
25
+ var mapPadding: EdgePadding { get set }
26
+ var showsTraffic: Bool? { get set }
27
+ var showsBuildings: Bool? { get set }
28
+ var showsCompass: Bool? { get set }
29
+ var minZoom: Double { get set }
30
+ var maxZoom: Double { get set }
25
31
  var darkMode: Bool? { get set }
32
+ var userTrackingMode: UserTrackingMode? { get set }
33
+ var userLocationImage: String { get set }
34
+ var userLocationSize: Double { get set }
35
+ var userLocationAnchor: Point? { get set }
26
36
  var onPress: ((_ event: MapPressEvent) -> Void)? { get set }
27
37
  var onLongPress: ((_ event: MapPressEvent) -> Void)? { get set }
28
38
  var onMapReady: (() -> Void)? { get set }
@@ -33,25 +43,49 @@ public protocol HybridNitroMapSpec_protocol: HybridObject, HybridView {
33
43
  var onMarkerDrag: ((_ event: MarkerDragEvent) -> Void)? { get set }
34
44
  var onMarkerDragEnd: ((_ event: MarkerDragEvent) -> Void)? { get set }
35
45
  var onClusterPress: ((_ event: ClusterPressEvent) -> Void)? { get set }
46
+ var onPolylinePress: ((_ id: String) -> Void)? { get set }
47
+ var onPolygonPress: ((_ id: String) -> Void)? { get set }
48
+ var onCirclePress: ((_ id: String) -> Void)? { get set }
36
49
  var onError: ((_ error: MapError) -> Void)? { get set }
50
+ var onUserLocationChange: ((_ event: UserLocationChangeEvent) -> Void)? { get set }
51
+ var onUserTrackingModeChange: ((_ mode: UserTrackingMode) -> Void)? { get set }
52
+ var onUserLocationError: ((_ error: MapError) -> Void)? { get set }
53
+ var onMapIdle: (() -> Void)? { get set }
37
54
 
38
55
  // Methods
39
56
  func animateToRegion(region: Region, duration: Double?) throws -> Void
40
57
  func fitToCoordinates(coordinates: [Coordinate], edgePadding: EdgePadding?, animated: Bool?) throws -> Void
58
+ func fitToSuppliedMarkers(markerIds: [String], edgePadding: EdgePadding?, animated: Bool?) throws -> Void
41
59
  func animateCamera(camera: Camera, duration: Double?) throws -> Void
42
60
  func getCamera() throws -> Promise<Camera>
43
61
  func setCamera(camera: Camera) throws -> Void
44
62
  func setMapStyle(style: [MapStyleElement]?) throws -> Void
45
63
  func getMapBoundaries() throws -> Promise<MapBoundaries>
64
+ func centerOnUserLocation() throws -> Void
65
+ func pointForCoordinate(coordinate: Coordinate) throws -> Point
66
+ func coordinateForPoint(point: Point) throws -> Coordinate
46
67
  func setIsDarkMode(enabled: Bool) throws -> Void
47
68
  func addMarker(marker: MarkerData) throws -> Void
48
69
  func addMarkers(markers: [MarkerData]) throws -> Void
49
70
  func updateMarker(marker: MarkerData) throws -> Void
50
71
  func removeMarker(id: String) throws -> Void
51
72
  func selectMarker(id: String) throws -> Void
73
+ func deselectMarker() throws -> Void
52
74
  func clearMarkers() throws -> Void
53
75
  func setClusteringEnabled(enabled: Bool) throws -> Void
54
76
  func refreshClusters() throws -> Void
77
+ func addPolyline(polyline: PolylineData) throws -> Void
78
+ func updatePolyline(polyline: PolylineData) throws -> Void
79
+ func removePolyline(id: String) throws -> Void
80
+ func clearPolylines() throws -> Void
81
+ func addPolygon(polygon: PolygonData) throws -> Void
82
+ func updatePolygon(polygon: PolygonData) throws -> Void
83
+ func removePolygon(id: String) throws -> Void
84
+ func clearPolygons() throws -> Void
85
+ func addCircle(circle: CircleData) throws -> Void
86
+ func updateCircle(circle: CircleData) throws -> Void
87
+ func removeCircle(id: String) throws -> Void
88
+ func clearCircles() throws -> Void
55
89
  }
56
90
 
57
91
  public extension HybridNitroMapSpec_protocol {