@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
@@ -23,14 +23,16 @@ namespace margelo::nitro::nitromap { struct ClusterConfig; }
23
23
  namespace margelo::nitro::nitromap { enum class ClusterStrategy; }
24
24
  // Forward declaration of `MarkerColor` to properly resolve imports.
25
25
  namespace margelo::nitro::nitromap { struct MarkerColor; }
26
- // Forward declaration of `ClusterAnimationStyle` to properly resolve imports.
27
- namespace margelo::nitro::nitromap { enum class ClusterAnimationStyle; }
26
+ // Forward declaration of `EdgePadding` to properly resolve imports.
27
+ namespace margelo::nitro::nitromap { struct EdgePadding; }
28
+ // Forward declaration of `UserTrackingMode` to properly resolve imports.
29
+ namespace margelo::nitro::nitromap { enum class UserTrackingMode; }
30
+ // Forward declaration of `Point` to properly resolve imports.
31
+ namespace margelo::nitro::nitromap { struct Point; }
28
32
  // Forward declaration of `MapPressEvent` to properly resolve imports.
29
33
  namespace margelo::nitro::nitromap { struct MapPressEvent; }
30
34
  // Forward declaration of `Coordinate` to properly resolve imports.
31
35
  namespace margelo::nitro::nitromap { struct Coordinate; }
32
- // Forward declaration of `Point` to properly resolve imports.
33
- namespace margelo::nitro::nitromap { struct Point; }
34
36
  // Forward declaration of `RegionChangeEvent` to properly resolve imports.
35
37
  namespace margelo::nitro::nitromap { struct RegionChangeEvent; }
36
38
  // Forward declaration of `MarkerPressEvent` to properly resolve imports.
@@ -41,12 +43,12 @@ namespace margelo::nitro::nitromap { struct MarkerDragEvent; }
41
43
  namespace margelo::nitro::nitromap { struct ClusterPressEvent; }
42
44
  // Forward declaration of `MapError` to properly resolve imports.
43
45
  namespace margelo::nitro::nitromap { struct MapError; }
46
+ // Forward declaration of `UserLocationChangeEvent` to properly resolve imports.
47
+ namespace margelo::nitro::nitromap { struct UserLocationChangeEvent; }
44
48
  // Forward declaration of `Camera` to properly resolve imports.
45
49
  namespace margelo::nitro::nitromap { struct Camera; }
46
50
  // Forward declaration of `MapBoundaries` to properly resolve imports.
47
51
  namespace margelo::nitro::nitromap { struct MapBoundaries; }
48
- // Forward declaration of `EdgePadding` to properly resolve imports.
49
- namespace margelo::nitro::nitromap { struct EdgePadding; }
50
52
  // Forward declaration of `MarkerData` to properly resolve imports.
51
53
  namespace margelo::nitro::nitromap { struct MarkerData; }
52
54
  // Forward declaration of `MarkerConfig` to properly resolve imports.
@@ -59,6 +61,12 @@ namespace margelo::nitro::nitromap { struct ImageMarkerConfig; }
59
61
  namespace margelo::nitro::nitromap { struct PriceMarkerStyle; }
60
62
  // Forward declaration of `MarkerAnimation` to properly resolve imports.
61
63
  namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
64
+ // Forward declaration of `PolylineData` to properly resolve imports.
65
+ namespace margelo::nitro::nitromap { struct PolylineData; }
66
+ // Forward declaration of `PolygonData` to properly resolve imports.
67
+ namespace margelo::nitro::nitromap { struct PolygonData; }
68
+ // Forward declaration of `CircleData` to properly resolve imports.
69
+ namespace margelo::nitro::nitromap { struct CircleData; }
62
70
 
63
71
  #include "MapProvider.hpp"
64
72
  #include <optional>
@@ -81,8 +89,12 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
81
89
  #include <variant>
82
90
  #include "JVariant_String_MarkerColor.hpp"
83
91
  #include "JMarkerColor.hpp"
84
- #include "ClusterAnimationStyle.hpp"
85
- #include "JClusterAnimationStyle.hpp"
92
+ #include "EdgePadding.hpp"
93
+ #include "JEdgePadding.hpp"
94
+ #include "UserTrackingMode.hpp"
95
+ #include "JUserTrackingMode.hpp"
96
+ #include "Point.hpp"
97
+ #include "JPoint.hpp"
86
98
  #include "MapPressEvent.hpp"
87
99
  #include <functional>
88
100
  #include "JFunc_void_MapPressEvent.hpp"
@@ -90,8 +102,6 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
90
102
  #include "JMapPressEvent.hpp"
91
103
  #include "Coordinate.hpp"
92
104
  #include "JCoordinate.hpp"
93
- #include "Point.hpp"
94
- #include "JPoint.hpp"
95
105
  #include "JFunc_void.hpp"
96
106
  #include "RegionChangeEvent.hpp"
97
107
  #include "JFunc_void_RegionChangeEvent.hpp"
@@ -105,17 +115,20 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
105
115
  #include "ClusterPressEvent.hpp"
106
116
  #include "JFunc_void_ClusterPressEvent.hpp"
107
117
  #include "JClusterPressEvent.hpp"
118
+ #include "JFunc_void_std__string.hpp"
108
119
  #include "MapError.hpp"
109
120
  #include "JFunc_void_MapError.hpp"
110
121
  #include "JMapError.hpp"
122
+ #include "UserLocationChangeEvent.hpp"
123
+ #include "JFunc_void_UserLocationChangeEvent.hpp"
124
+ #include "JUserLocationChangeEvent.hpp"
125
+ #include "JFunc_void_UserTrackingMode.hpp"
111
126
  #include "Camera.hpp"
112
127
  #include <NitroModules/Promise.hpp>
113
128
  #include <NitroModules/JPromise.hpp>
114
129
  #include "JCamera.hpp"
115
130
  #include "MapBoundaries.hpp"
116
131
  #include "JMapBoundaries.hpp"
117
- #include "EdgePadding.hpp"
118
- #include "JEdgePadding.hpp"
119
132
  #include "MarkerData.hpp"
120
133
  #include "JMarkerData.hpp"
121
134
  #include "MarkerConfig.hpp"
@@ -129,6 +142,12 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
129
142
  #include "JPriceMarkerStyle.hpp"
130
143
  #include "MarkerAnimation.hpp"
131
144
  #include "JMarkerAnimation.hpp"
145
+ #include "PolylineData.hpp"
146
+ #include "JPolylineData.hpp"
147
+ #include "PolygonData.hpp"
148
+ #include "JPolygonData.hpp"
149
+ #include "CircleData.hpp"
150
+ #include "JCircleData.hpp"
132
151
 
133
152
  namespace margelo::nitro::nitromap {
134
153
 
@@ -177,6 +196,15 @@ namespace margelo::nitro::nitromap {
177
196
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JRegion> /* initialRegion */)>("setInitialRegion");
178
197
  method(_javaPart, initialRegion.has_value() ? JRegion::fromCpp(initialRegion.value()) : nullptr);
179
198
  }
199
+ std::optional<Region> JHybridNitroMapSpec::getRegion() {
200
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRegion>()>("getRegion");
201
+ auto __result = method(_javaPart);
202
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
203
+ }
204
+ void JHybridNitroMapSpec::setRegion(const std::optional<Region>& region) {
205
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JRegion> /* region */)>("setRegion");
206
+ method(_javaPart, region.has_value() ? JRegion::fromCpp(region.value()) : nullptr);
207
+ }
180
208
  std::optional<bool> JHybridNitroMapSpec::getShowsUserLocation() {
181
209
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsUserLocation");
182
210
  auto __result = method(_javaPart);
@@ -258,15 +286,6 @@ namespace margelo::nitro::nitromap {
258
286
  return __array;
259
287
  }() : nullptr);
260
288
  }
261
- std::optional<bool> JHybridNitroMapSpec::getShowsMyLocationButton() {
262
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsMyLocationButton");
263
- auto __result = method(_javaPart);
264
- return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
265
- }
266
- void JHybridNitroMapSpec::setShowsMyLocationButton(std::optional<bool> showsMyLocationButton) {
267
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsMyLocationButton */)>("setShowsMyLocationButton");
268
- method(_javaPart, showsMyLocationButton.has_value() ? jni::JBoolean::valueOf(showsMyLocationButton.value()) : nullptr);
269
- }
270
289
  std::optional<ClusterConfig> JHybridNitroMapSpec::getClusterConfig() {
271
290
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JClusterConfig>()>("getClusterConfig");
272
291
  auto __result = method(_javaPart);
@@ -276,6 +295,60 @@ namespace margelo::nitro::nitromap {
276
295
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JClusterConfig> /* clusterConfig */)>("setClusterConfig");
277
296
  method(_javaPart, clusterConfig.has_value() ? JClusterConfig::fromCpp(clusterConfig.value()) : nullptr);
278
297
  }
298
+ EdgePadding JHybridNitroMapSpec::getMapPadding() {
299
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JEdgePadding>()>("getMapPadding");
300
+ auto __result = method(_javaPart);
301
+ return __result->toCpp();
302
+ }
303
+ void JHybridNitroMapSpec::setMapPadding(const EdgePadding& mapPadding) {
304
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JEdgePadding> /* mapPadding */)>("setMapPadding");
305
+ method(_javaPart, JEdgePadding::fromCpp(mapPadding));
306
+ }
307
+ std::optional<bool> JHybridNitroMapSpec::getShowsTraffic() {
308
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsTraffic");
309
+ auto __result = method(_javaPart);
310
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
311
+ }
312
+ void JHybridNitroMapSpec::setShowsTraffic(std::optional<bool> showsTraffic) {
313
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsTraffic */)>("setShowsTraffic");
314
+ method(_javaPart, showsTraffic.has_value() ? jni::JBoolean::valueOf(showsTraffic.value()) : nullptr);
315
+ }
316
+ std::optional<bool> JHybridNitroMapSpec::getShowsBuildings() {
317
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsBuildings");
318
+ auto __result = method(_javaPart);
319
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
320
+ }
321
+ void JHybridNitroMapSpec::setShowsBuildings(std::optional<bool> showsBuildings) {
322
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsBuildings */)>("setShowsBuildings");
323
+ method(_javaPart, showsBuildings.has_value() ? jni::JBoolean::valueOf(showsBuildings.value()) : nullptr);
324
+ }
325
+ std::optional<bool> JHybridNitroMapSpec::getShowsCompass() {
326
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsCompass");
327
+ auto __result = method(_javaPart);
328
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
329
+ }
330
+ void JHybridNitroMapSpec::setShowsCompass(std::optional<bool> showsCompass) {
331
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsCompass */)>("setShowsCompass");
332
+ method(_javaPart, showsCompass.has_value() ? jni::JBoolean::valueOf(showsCompass.value()) : nullptr);
333
+ }
334
+ double JHybridNitroMapSpec::getMinZoom() {
335
+ static const auto method = javaClassStatic()->getMethod<double()>("getMinZoom");
336
+ auto __result = method(_javaPart);
337
+ return __result;
338
+ }
339
+ void JHybridNitroMapSpec::setMinZoom(double minZoom) {
340
+ static const auto method = javaClassStatic()->getMethod<void(double /* minZoom */)>("setMinZoom");
341
+ method(_javaPart, minZoom);
342
+ }
343
+ double JHybridNitroMapSpec::getMaxZoom() {
344
+ static const auto method = javaClassStatic()->getMethod<double()>("getMaxZoom");
345
+ auto __result = method(_javaPart);
346
+ return __result;
347
+ }
348
+ void JHybridNitroMapSpec::setMaxZoom(double maxZoom) {
349
+ static const auto method = javaClassStatic()->getMethod<void(double /* maxZoom */)>("setMaxZoom");
350
+ method(_javaPart, maxZoom);
351
+ }
279
352
  std::optional<bool> JHybridNitroMapSpec::getDarkMode() {
280
353
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getDarkMode");
281
354
  auto __result = method(_javaPart);
@@ -285,6 +358,42 @@ namespace margelo::nitro::nitromap {
285
358
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* darkMode */)>("setDarkMode");
286
359
  method(_javaPart, darkMode.has_value() ? jni::JBoolean::valueOf(darkMode.value()) : nullptr);
287
360
  }
361
+ std::optional<UserTrackingMode> JHybridNitroMapSpec::getUserTrackingMode() {
362
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JUserTrackingMode>()>("getUserTrackingMode");
363
+ auto __result = method(_javaPart);
364
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
365
+ }
366
+ void JHybridNitroMapSpec::setUserTrackingMode(std::optional<UserTrackingMode> userTrackingMode) {
367
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUserTrackingMode> /* userTrackingMode */)>("setUserTrackingMode");
368
+ method(_javaPart, userTrackingMode.has_value() ? JUserTrackingMode::fromCpp(userTrackingMode.value()) : nullptr);
369
+ }
370
+ std::string JHybridNitroMapSpec::getUserLocationImage() {
371
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getUserLocationImage");
372
+ auto __result = method(_javaPart);
373
+ return __result->toStdString();
374
+ }
375
+ void JHybridNitroMapSpec::setUserLocationImage(const std::string& userLocationImage) {
376
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* userLocationImage */)>("setUserLocationImage");
377
+ method(_javaPart, jni::make_jstring(userLocationImage));
378
+ }
379
+ double JHybridNitroMapSpec::getUserLocationSize() {
380
+ static const auto method = javaClassStatic()->getMethod<double()>("getUserLocationSize");
381
+ auto __result = method(_javaPart);
382
+ return __result;
383
+ }
384
+ void JHybridNitroMapSpec::setUserLocationSize(double userLocationSize) {
385
+ static const auto method = javaClassStatic()->getMethod<void(double /* userLocationSize */)>("setUserLocationSize");
386
+ method(_javaPart, userLocationSize);
387
+ }
388
+ std::optional<Point> JHybridNitroMapSpec::getUserLocationAnchor() {
389
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPoint>()>("getUserLocationAnchor");
390
+ auto __result = method(_javaPart);
391
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
392
+ }
393
+ void JHybridNitroMapSpec::setUserLocationAnchor(const std::optional<Point>& userLocationAnchor) {
394
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPoint> /* userLocationAnchor */)>("setUserLocationAnchor");
395
+ method(_javaPart, userLocationAnchor.has_value() ? JPoint::fromCpp(userLocationAnchor.value()) : nullptr);
396
+ }
288
397
  std::optional<std::function<void(const MapPressEvent& /* event */)>> JHybridNitroMapSpec::getOnPress() {
289
398
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapPressEvent::javaobject>()>("getOnPress_cxx");
290
399
  auto __result = method(_javaPart);
@@ -455,6 +564,57 @@ namespace margelo::nitro::nitromap {
455
564
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_ClusterPressEvent::javaobject> /* onClusterPress */)>("setOnClusterPress_cxx");
456
565
  method(_javaPart, onClusterPress.has_value() ? JFunc_void_ClusterPressEvent_cxx::fromCpp(onClusterPress.value()) : nullptr);
457
566
  }
567
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnPolylinePress() {
568
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnPolylinePress_cxx");
569
+ auto __result = method(_javaPart);
570
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
571
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
572
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
573
+ return downcast->cthis()->getFunction();
574
+ } else {
575
+ auto __resultRef = jni::make_global(__result);
576
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
577
+ }
578
+ }()) : std::nullopt;
579
+ }
580
+ void JHybridNitroMapSpec::setOnPolylinePress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolylinePress) {
581
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onPolylinePress */)>("setOnPolylinePress_cxx");
582
+ method(_javaPart, onPolylinePress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onPolylinePress.value()) : nullptr);
583
+ }
584
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnPolygonPress() {
585
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnPolygonPress_cxx");
586
+ auto __result = method(_javaPart);
587
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
588
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
589
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
590
+ return downcast->cthis()->getFunction();
591
+ } else {
592
+ auto __resultRef = jni::make_global(__result);
593
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
594
+ }
595
+ }()) : std::nullopt;
596
+ }
597
+ void JHybridNitroMapSpec::setOnPolygonPress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolygonPress) {
598
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onPolygonPress */)>("setOnPolygonPress_cxx");
599
+ method(_javaPart, onPolygonPress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onPolygonPress.value()) : nullptr);
600
+ }
601
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnCirclePress() {
602
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnCirclePress_cxx");
603
+ auto __result = method(_javaPart);
604
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
605
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
606
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
607
+ return downcast->cthis()->getFunction();
608
+ } else {
609
+ auto __resultRef = jni::make_global(__result);
610
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
611
+ }
612
+ }()) : std::nullopt;
613
+ }
614
+ void JHybridNitroMapSpec::setOnCirclePress(const std::optional<std::function<void(const std::string& /* id */)>>& onCirclePress) {
615
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onCirclePress */)>("setOnCirclePress_cxx");
616
+ method(_javaPart, onCirclePress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onCirclePress.value()) : nullptr);
617
+ }
458
618
  std::optional<std::function<void(const MapError& /* error */)>> JHybridNitroMapSpec::getOnError() {
459
619
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapError::javaobject>()>("getOnError_cxx");
460
620
  auto __result = method(_javaPart);
@@ -472,6 +632,74 @@ namespace margelo::nitro::nitromap {
472
632
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_MapError::javaobject> /* onError */)>("setOnError_cxx");
473
633
  method(_javaPart, onError.has_value() ? JFunc_void_MapError_cxx::fromCpp(onError.value()) : nullptr);
474
634
  }
635
+ std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>> JHybridNitroMapSpec::getOnUserLocationChange() {
636
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_UserLocationChangeEvent::javaobject>()>("getOnUserLocationChange_cxx");
637
+ auto __result = method(_javaPart);
638
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const UserLocationChangeEvent& /* event */)> {
639
+ if (__result->isInstanceOf(JFunc_void_UserLocationChangeEvent_cxx::javaClassStatic())) [[likely]] {
640
+ auto downcast = jni::static_ref_cast<JFunc_void_UserLocationChangeEvent_cxx::javaobject>(__result);
641
+ return downcast->cthis()->getFunction();
642
+ } else {
643
+ auto __resultRef = jni::make_global(__result);
644
+ return JNICallable<JFunc_void_UserLocationChangeEvent, void(UserLocationChangeEvent)>(std::move(__resultRef));
645
+ }
646
+ }()) : std::nullopt;
647
+ }
648
+ void JHybridNitroMapSpec::setOnUserLocationChange(const std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>>& onUserLocationChange) {
649
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UserLocationChangeEvent::javaobject> /* onUserLocationChange */)>("setOnUserLocationChange_cxx");
650
+ method(_javaPart, onUserLocationChange.has_value() ? JFunc_void_UserLocationChangeEvent_cxx::fromCpp(onUserLocationChange.value()) : nullptr);
651
+ }
652
+ std::optional<std::function<void(UserTrackingMode /* mode */)>> JHybridNitroMapSpec::getOnUserTrackingModeChange() {
653
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_UserTrackingMode::javaobject>()>("getOnUserTrackingModeChange_cxx");
654
+ auto __result = method(_javaPart);
655
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(UserTrackingMode /* mode */)> {
656
+ if (__result->isInstanceOf(JFunc_void_UserTrackingMode_cxx::javaClassStatic())) [[likely]] {
657
+ auto downcast = jni::static_ref_cast<JFunc_void_UserTrackingMode_cxx::javaobject>(__result);
658
+ return downcast->cthis()->getFunction();
659
+ } else {
660
+ auto __resultRef = jni::make_global(__result);
661
+ return JNICallable<JFunc_void_UserTrackingMode, void(UserTrackingMode)>(std::move(__resultRef));
662
+ }
663
+ }()) : std::nullopt;
664
+ }
665
+ void JHybridNitroMapSpec::setOnUserTrackingModeChange(const std::optional<std::function<void(UserTrackingMode /* mode */)>>& onUserTrackingModeChange) {
666
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UserTrackingMode::javaobject> /* onUserTrackingModeChange */)>("setOnUserTrackingModeChange_cxx");
667
+ method(_javaPart, onUserTrackingModeChange.has_value() ? JFunc_void_UserTrackingMode_cxx::fromCpp(onUserTrackingModeChange.value()) : nullptr);
668
+ }
669
+ std::optional<std::function<void(const MapError& /* error */)>> JHybridNitroMapSpec::getOnUserLocationError() {
670
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapError::javaobject>()>("getOnUserLocationError_cxx");
671
+ auto __result = method(_javaPart);
672
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const MapError& /* error */)> {
673
+ if (__result->isInstanceOf(JFunc_void_MapError_cxx::javaClassStatic())) [[likely]] {
674
+ auto downcast = jni::static_ref_cast<JFunc_void_MapError_cxx::javaobject>(__result);
675
+ return downcast->cthis()->getFunction();
676
+ } else {
677
+ auto __resultRef = jni::make_global(__result);
678
+ return JNICallable<JFunc_void_MapError, void(MapError)>(std::move(__resultRef));
679
+ }
680
+ }()) : std::nullopt;
681
+ }
682
+ void JHybridNitroMapSpec::setOnUserLocationError(const std::optional<std::function<void(const MapError& /* error */)>>& onUserLocationError) {
683
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_MapError::javaobject> /* onUserLocationError */)>("setOnUserLocationError_cxx");
684
+ method(_javaPart, onUserLocationError.has_value() ? JFunc_void_MapError_cxx::fromCpp(onUserLocationError.value()) : nullptr);
685
+ }
686
+ std::optional<std::function<void()>> JHybridNitroMapSpec::getOnMapIdle() {
687
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnMapIdle_cxx");
688
+ auto __result = method(_javaPart);
689
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void()> {
690
+ if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
691
+ auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
692
+ return downcast->cthis()->getFunction();
693
+ } else {
694
+ auto __resultRef = jni::make_global(__result);
695
+ return JNICallable<JFunc_void, void()>(std::move(__resultRef));
696
+ }
697
+ }()) : std::nullopt;
698
+ }
699
+ void JHybridNitroMapSpec::setOnMapIdle(const std::optional<std::function<void()>>& onMapIdle) {
700
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onMapIdle */)>("setOnMapIdle_cxx");
701
+ method(_javaPart, onMapIdle.has_value() ? JFunc_void_cxx::fromCpp(onMapIdle.value()) : nullptr);
702
+ }
475
703
 
476
704
  // Methods
477
705
  void JHybridNitroMapSpec::animateToRegion(const Region& region, std::optional<double> duration) {
@@ -491,6 +719,19 @@ namespace margelo::nitro::nitromap {
491
719
  return __array;
492
720
  }(), edgePadding.has_value() ? JEdgePadding::fromCpp(edgePadding.value()) : nullptr, animated.has_value() ? jni::JBoolean::valueOf(animated.value()) : nullptr);
493
721
  }
722
+ void JHybridNitroMapSpec::fitToSuppliedMarkers(const std::vector<std::string>& markerIds, const std::optional<EdgePadding>& edgePadding, std::optional<bool> animated) {
723
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JArrayClass<jni::JString>> /* markerIds */, jni::alias_ref<JEdgePadding> /* edgePadding */, jni::alias_ref<jni::JBoolean> /* animated */)>("fitToSuppliedMarkers");
724
+ method(_javaPart, [&]() {
725
+ size_t __size = markerIds.size();
726
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
727
+ for (size_t __i = 0; __i < __size; __i++) {
728
+ const auto& __element = markerIds[__i];
729
+ auto __elementJni = jni::make_jstring(__element);
730
+ __array->setElement(__i, *__elementJni);
731
+ }
732
+ return __array;
733
+ }(), edgePadding.has_value() ? JEdgePadding::fromCpp(edgePadding.value()) : nullptr, animated.has_value() ? jni::JBoolean::valueOf(animated.value()) : nullptr);
734
+ }
494
735
  void JHybridNitroMapSpec::animateCamera(const Camera& camera, std::optional<double> duration) {
495
736
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCamera> /* camera */, jni::alias_ref<jni::JDouble> /* duration */)>("animateCamera");
496
737
  method(_javaPart, JCamera::fromCpp(camera), duration.has_value() ? jni::JDouble::valueOf(duration.value()) : nullptr);
@@ -544,6 +785,20 @@ namespace margelo::nitro::nitromap {
544
785
  return __promise;
545
786
  }();
546
787
  }
788
+ void JHybridNitroMapSpec::centerOnUserLocation() {
789
+ static const auto method = javaClassStatic()->getMethod<void()>("centerOnUserLocation");
790
+ method(_javaPart);
791
+ }
792
+ Point JHybridNitroMapSpec::pointForCoordinate(const Coordinate& coordinate) {
793
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPoint>(jni::alias_ref<JCoordinate> /* coordinate */)>("pointForCoordinate");
794
+ auto __result = method(_javaPart, JCoordinate::fromCpp(coordinate));
795
+ return __result->toCpp();
796
+ }
797
+ Coordinate JHybridNitroMapSpec::coordinateForPoint(const Point& point) {
798
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JCoordinate>(jni::alias_ref<JPoint> /* point */)>("coordinateForPoint");
799
+ auto __result = method(_javaPart, JPoint::fromCpp(point));
800
+ return __result->toCpp();
801
+ }
547
802
  void JHybridNitroMapSpec::setIsDarkMode(bool enabled) {
548
803
  static const auto method = javaClassStatic()->getMethod<void(jboolean /* enabled */)>("setIsDarkMode");
549
804
  method(_javaPart, enabled);
@@ -577,6 +832,10 @@ namespace margelo::nitro::nitromap {
577
832
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("selectMarker");
578
833
  method(_javaPart, jni::make_jstring(id));
579
834
  }
835
+ void JHybridNitroMapSpec::deselectMarker() {
836
+ static const auto method = javaClassStatic()->getMethod<void()>("deselectMarker");
837
+ method(_javaPart);
838
+ }
580
839
  void JHybridNitroMapSpec::clearMarkers() {
581
840
  static const auto method = javaClassStatic()->getMethod<void()>("clearMarkers");
582
841
  method(_javaPart);
@@ -589,5 +848,53 @@ namespace margelo::nitro::nitromap {
589
848
  static const auto method = javaClassStatic()->getMethod<void()>("refreshClusters");
590
849
  method(_javaPart);
591
850
  }
851
+ void JHybridNitroMapSpec::addPolyline(const PolylineData& polyline) {
852
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolylineData> /* polyline */)>("addPolyline");
853
+ method(_javaPart, JPolylineData::fromCpp(polyline));
854
+ }
855
+ void JHybridNitroMapSpec::updatePolyline(const PolylineData& polyline) {
856
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolylineData> /* polyline */)>("updatePolyline");
857
+ method(_javaPart, JPolylineData::fromCpp(polyline));
858
+ }
859
+ void JHybridNitroMapSpec::removePolyline(const std::string& id) {
860
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removePolyline");
861
+ method(_javaPart, jni::make_jstring(id));
862
+ }
863
+ void JHybridNitroMapSpec::clearPolylines() {
864
+ static const auto method = javaClassStatic()->getMethod<void()>("clearPolylines");
865
+ method(_javaPart);
866
+ }
867
+ void JHybridNitroMapSpec::addPolygon(const PolygonData& polygon) {
868
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolygonData> /* polygon */)>("addPolygon");
869
+ method(_javaPart, JPolygonData::fromCpp(polygon));
870
+ }
871
+ void JHybridNitroMapSpec::updatePolygon(const PolygonData& polygon) {
872
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolygonData> /* polygon */)>("updatePolygon");
873
+ method(_javaPart, JPolygonData::fromCpp(polygon));
874
+ }
875
+ void JHybridNitroMapSpec::removePolygon(const std::string& id) {
876
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removePolygon");
877
+ method(_javaPart, jni::make_jstring(id));
878
+ }
879
+ void JHybridNitroMapSpec::clearPolygons() {
880
+ static const auto method = javaClassStatic()->getMethod<void()>("clearPolygons");
881
+ method(_javaPart);
882
+ }
883
+ void JHybridNitroMapSpec::addCircle(const CircleData& circle) {
884
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCircleData> /* circle */)>("addCircle");
885
+ method(_javaPart, JCircleData::fromCpp(circle));
886
+ }
887
+ void JHybridNitroMapSpec::updateCircle(const CircleData& circle) {
888
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCircleData> /* circle */)>("updateCircle");
889
+ method(_javaPart, JCircleData::fromCpp(circle));
890
+ }
891
+ void JHybridNitroMapSpec::removeCircle(const std::string& id) {
892
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removeCircle");
893
+ method(_javaPart, jni::make_jstring(id));
894
+ }
895
+ void JHybridNitroMapSpec::clearCircles() {
896
+ static const auto method = javaClassStatic()->getMethod<void()>("clearCircles");
897
+ method(_javaPart);
898
+ }
592
899
 
593
900
  } // namespace margelo::nitro::nitromap
@@ -54,6 +54,8 @@ namespace margelo::nitro::nitromap {
54
54
  void setProvider(std::optional<MapProvider> provider) override;
55
55
  std::optional<Region> getInitialRegion() override;
56
56
  void setInitialRegion(const std::optional<Region>& initialRegion) override;
57
+ std::optional<Region> getRegion() override;
58
+ void setRegion(const std::optional<Region>& region) override;
57
59
  std::optional<bool> getShowsUserLocation() override;
58
60
  void setShowsUserLocation(std::optional<bool> showsUserLocation) override;
59
61
  std::optional<bool> getZoomEnabled() override;
@@ -68,12 +70,30 @@ namespace margelo::nitro::nitromap {
68
70
  void setMapType(std::optional<MapType> mapType) override;
69
71
  std::optional<std::vector<MapStyleElement>> getCustomMapStyle() override;
70
72
  void setCustomMapStyle(const std::optional<std::vector<MapStyleElement>>& customMapStyle) override;
71
- std::optional<bool> getShowsMyLocationButton() override;
72
- void setShowsMyLocationButton(std::optional<bool> showsMyLocationButton) override;
73
73
  std::optional<ClusterConfig> getClusterConfig() override;
74
74
  void setClusterConfig(const std::optional<ClusterConfig>& clusterConfig) override;
75
+ EdgePadding getMapPadding() override;
76
+ void setMapPadding(const EdgePadding& mapPadding) override;
77
+ std::optional<bool> getShowsTraffic() override;
78
+ void setShowsTraffic(std::optional<bool> showsTraffic) override;
79
+ std::optional<bool> getShowsBuildings() override;
80
+ void setShowsBuildings(std::optional<bool> showsBuildings) override;
81
+ std::optional<bool> getShowsCompass() override;
82
+ void setShowsCompass(std::optional<bool> showsCompass) override;
83
+ double getMinZoom() override;
84
+ void setMinZoom(double minZoom) override;
85
+ double getMaxZoom() override;
86
+ void setMaxZoom(double maxZoom) override;
75
87
  std::optional<bool> getDarkMode() override;
76
88
  void setDarkMode(std::optional<bool> darkMode) override;
89
+ std::optional<UserTrackingMode> getUserTrackingMode() override;
90
+ void setUserTrackingMode(std::optional<UserTrackingMode> userTrackingMode) override;
91
+ std::string getUserLocationImage() override;
92
+ void setUserLocationImage(const std::string& userLocationImage) override;
93
+ double getUserLocationSize() override;
94
+ void setUserLocationSize(double userLocationSize) override;
95
+ std::optional<Point> getUserLocationAnchor() override;
96
+ void setUserLocationAnchor(const std::optional<Point>& userLocationAnchor) override;
77
97
  std::optional<std::function<void(const MapPressEvent& /* event */)>> getOnPress() override;
78
98
  void setOnPress(const std::optional<std::function<void(const MapPressEvent& /* event */)>>& onPress) override;
79
99
  std::optional<std::function<void(const MapPressEvent& /* event */)>> getOnLongPress() override;
@@ -94,27 +114,58 @@ namespace margelo::nitro::nitromap {
94
114
  void setOnMarkerDragEnd(const std::optional<std::function<void(const MarkerDragEvent& /* event */)>>& onMarkerDragEnd) override;
95
115
  std::optional<std::function<void(const ClusterPressEvent& /* event */)>> getOnClusterPress() override;
96
116
  void setOnClusterPress(const std::optional<std::function<void(const ClusterPressEvent& /* event */)>>& onClusterPress) override;
117
+ std::optional<std::function<void(const std::string& /* id */)>> getOnPolylinePress() override;
118
+ void setOnPolylinePress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolylinePress) override;
119
+ std::optional<std::function<void(const std::string& /* id */)>> getOnPolygonPress() override;
120
+ void setOnPolygonPress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolygonPress) override;
121
+ std::optional<std::function<void(const std::string& /* id */)>> getOnCirclePress() override;
122
+ void setOnCirclePress(const std::optional<std::function<void(const std::string& /* id */)>>& onCirclePress) override;
97
123
  std::optional<std::function<void(const MapError& /* error */)>> getOnError() override;
98
124
  void setOnError(const std::optional<std::function<void(const MapError& /* error */)>>& onError) override;
125
+ std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>> getOnUserLocationChange() override;
126
+ void setOnUserLocationChange(const std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>>& onUserLocationChange) override;
127
+ std::optional<std::function<void(UserTrackingMode /* mode */)>> getOnUserTrackingModeChange() override;
128
+ void setOnUserTrackingModeChange(const std::optional<std::function<void(UserTrackingMode /* mode */)>>& onUserTrackingModeChange) override;
129
+ std::optional<std::function<void(const MapError& /* error */)>> getOnUserLocationError() override;
130
+ void setOnUserLocationError(const std::optional<std::function<void(const MapError& /* error */)>>& onUserLocationError) override;
131
+ std::optional<std::function<void()>> getOnMapIdle() override;
132
+ void setOnMapIdle(const std::optional<std::function<void()>>& onMapIdle) override;
99
133
 
100
134
  public:
101
135
  // Methods
102
136
  void animateToRegion(const Region& region, std::optional<double> duration) override;
103
137
  void fitToCoordinates(const std::vector<Coordinate>& coordinates, const std::optional<EdgePadding>& edgePadding, std::optional<bool> animated) override;
138
+ void fitToSuppliedMarkers(const std::vector<std::string>& markerIds, const std::optional<EdgePadding>& edgePadding, std::optional<bool> animated) override;
104
139
  void animateCamera(const Camera& camera, std::optional<double> duration) override;
105
140
  std::shared_ptr<Promise<Camera>> getCamera() override;
106
141
  void setCamera(const Camera& camera) override;
107
142
  void setMapStyle(const std::optional<std::vector<MapStyleElement>>& style) override;
108
143
  std::shared_ptr<Promise<MapBoundaries>> getMapBoundaries() override;
144
+ void centerOnUserLocation() override;
145
+ Point pointForCoordinate(const Coordinate& coordinate) override;
146
+ Coordinate coordinateForPoint(const Point& point) override;
109
147
  void setIsDarkMode(bool enabled) override;
110
148
  void addMarker(const MarkerData& marker) override;
111
149
  void addMarkers(const std::vector<MarkerData>& markers) override;
112
150
  void updateMarker(const MarkerData& marker) override;
113
151
  void removeMarker(const std::string& id) override;
114
152
  void selectMarker(const std::string& id) override;
153
+ void deselectMarker() override;
115
154
  void clearMarkers() override;
116
155
  void setClusteringEnabled(bool enabled) override;
117
156
  void refreshClusters() override;
157
+ void addPolyline(const PolylineData& polyline) override;
158
+ void updatePolyline(const PolylineData& polyline) override;
159
+ void removePolyline(const std::string& id) override;
160
+ void clearPolylines() override;
161
+ void addPolygon(const PolygonData& polygon) override;
162
+ void updatePolygon(const PolygonData& polygon) override;
163
+ void removePolygon(const std::string& id) override;
164
+ void clearPolygons() override;
165
+ void addCircle(const CircleData& circle) override;
166
+ void updateCircle(const CircleData& circle) override;
167
+ void removeCircle(const std::string& id) override;
168
+ void clearCircles() override;
118
169
 
119
170
  private:
120
171
  friend HybridBase;
@@ -42,16 +42,13 @@ namespace margelo::nitro::nitromap {
42
42
  static jni::alias_ref<JMarkerAnimation> fromCpp(MarkerAnimation value) {
43
43
  static const auto clazz = javaClassStatic();
44
44
  static const auto fieldNONE = clazz->getStaticField<JMarkerAnimation>("NONE");
45
- static const auto fieldPOP = clazz->getStaticField<JMarkerAnimation>("POP");
46
- static const auto fieldFADEIN = clazz->getStaticField<JMarkerAnimation>("FADEIN");
45
+ static const auto fieldAPPEAR = clazz->getStaticField<JMarkerAnimation>("APPEAR");
47
46
 
48
47
  switch (value) {
49
48
  case MarkerAnimation::NONE:
50
49
  return clazz->getStaticFieldValue(fieldNONE);
51
- case MarkerAnimation::POP:
52
- return clazz->getStaticFieldValue(fieldPOP);
53
- case MarkerAnimation::FADEIN:
54
- return clazz->getStaticFieldValue(fieldFADEIN);
50
+ case MarkerAnimation::APPEAR:
51
+ return clazz->getStaticFieldValue(fieldAPPEAR);
55
52
  default:
56
53
  std::string stringValue = std::to_string(static_cast<int>(value));
57
54
  throw std::invalid_argument("Invalid enum value (" + stringValue + "!");