@maydon_tech/react-native-nitro-maps 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) 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/build.gradle +6 -2
  6. package/android/gradle.properties +4 -4
  7. package/android/src/main/cpp/ClusterEngineJNI.cpp +198 -0
  8. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMap.kt +397 -0
  9. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapConfig.kt +53 -0
  10. package/android/src/main/{java → kotlin}/com/margelo/nitro/nitromap/NitroMapPackage.kt +4 -4
  11. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapView.kt +73 -0
  12. package/android/src/main/kotlin/com/margelo/nitro/nitromap/UserLocationManager.kt +295 -0
  13. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusterIconRenderer.kt +111 -0
  14. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusteringManager.kt +104 -0
  15. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +166 -0
  16. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerIconFactory.kt +303 -0
  17. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerSelectionHandler.kt +72 -0
  18. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/PriceMarkerRenderer.kt +159 -0
  19. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderFactory.kt +24 -0
  20. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +128 -0
  21. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapDelegate.kt +317 -0
  22. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Clustering.kt +524 -0
  23. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Markers.kt +358 -0
  24. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Overlays.kt +272 -0
  25. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+UserLocation.kt +296 -0
  26. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider.kt +815 -0
  27. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/MarkerTagData.kt +19 -0
  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 +137 -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 +84 -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++/JCoordinateRing.hpp +77 -0
  125. package/nitrogen/generated/android/c++/JFunc_void_UserLocationChangeEvent.hpp +79 -0
  126. package/nitrogen/generated/android/c++/JFunc_void_UserTrackingMode.hpp +77 -0
  127. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  128. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +332 -21
  129. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +53 -2
  130. package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +3 -6
  131. package/nitrogen/generated/android/c++/JMarkerData.hpp +15 -3
  132. package/nitrogen/generated/android/c++/JPolygonData.hpp +133 -0
  133. package/nitrogen/generated/android/c++/JPolylineData.hpp +113 -0
  134. package/nitrogen/generated/android/c++/JUserLocationChangeEvent.hpp +70 -0
  135. package/nitrogen/generated/android/c++/JUserTrackingMode.hpp +62 -0
  136. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +72 -4
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CircleData.kt +62 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +4 -4
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CoordinateRing.kt +38 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserLocationChangeEvent.kt +80 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserTrackingMode.kt +80 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_std__string.kt +80 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +228 -2
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +1 -2
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +12 -3
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolygonData.kt +62 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolylineData.kt +62 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/UserLocationChangeEvent.kt +47 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/{ClusterAnimationStyle.kt → UserTrackingMode.kt} +6 -8
  150. package/nitrogen/generated/android/nitromapOnLoad.cpp +6 -0
  151. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +24 -0
  152. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +178 -17
  153. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +18 -3
  154. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +252 -16
  155. package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +90 -5
  156. package/nitrogen/generated/ios/swift/CircleData.swift +143 -0
  157. package/nitrogen/generated/ios/swift/ClusterConfig.swift +22 -15
  158. package/nitrogen/generated/ios/swift/CoordinateRing.swift +48 -0
  159. package/nitrogen/generated/ios/swift/Func_void_UserLocationChangeEvent.swift +47 -0
  160. package/nitrogen/generated/ios/swift/Func_void_UserTrackingMode.swift +47 -0
  161. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  162. package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +35 -1
  163. package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +582 -8
  164. package/nitrogen/generated/ios/swift/MarkerAnimation.swift +4 -8
  165. package/nitrogen/generated/ios/swift/MarkerData.swift +54 -2
  166. package/nitrogen/generated/ios/swift/PolygonData.swift +167 -0
  167. package/nitrogen/generated/ios/swift/PolylineData.swift +155 -0
  168. package/nitrogen/generated/ios/swift/UserLocationChangeEvent.swift +69 -0
  169. package/nitrogen/generated/ios/swift/UserTrackingMode.swift +44 -0
  170. package/nitrogen/generated/shared/c++/CircleData.hpp +113 -0
  171. package/nitrogen/generated/shared/c++/ClusterConfig.hpp +5 -8
  172. package/nitrogen/generated/shared/c++/CoordinateRing.hpp +77 -0
  173. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +53 -2
  174. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +75 -6
  175. package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +4 -8
  176. package/nitrogen/generated/shared/c++/MarkerData.hpp +14 -2
  177. package/nitrogen/generated/shared/c++/PolygonData.hpp +117 -0
  178. package/nitrogen/generated/shared/c++/PolylineData.hpp +114 -0
  179. package/nitrogen/generated/shared/c++/UserLocationChangeEvent.hpp +88 -0
  180. package/nitrogen/generated/shared/c++/UserTrackingMode.hpp +80 -0
  181. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +216 -12
  182. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +23 -1
  183. package/nitrogen/generated/shared/json/NitroMapConfig.json +18 -1
  184. package/package.json +36 -5
  185. package/src/components/ImageMarker.tsx +58 -42
  186. package/src/components/Marker.tsx +161 -0
  187. package/src/components/NitroCircle.tsx +183 -0
  188. package/src/components/NitroMap.tsx +328 -78
  189. package/src/components/NitroPolygon.tsx +229 -0
  190. package/src/components/NitroPolyline.tsx +208 -0
  191. package/src/components/PriceMarker.tsx +23 -48
  192. package/src/context/NitroMapContext.tsx +4 -0
  193. package/src/hooks/useNitroCircle.ts +25 -0
  194. package/src/hooks/useNitroMarker.ts +49 -10
  195. package/src/hooks/useNitroOverlay.ts +68 -0
  196. package/src/hooks/useNitroPolygon.ts +25 -0
  197. package/src/hooks/useNitroPolyline.ts +25 -0
  198. package/src/index.tsx +28 -2
  199. package/src/specs/NitroMap.nitro.ts +294 -5
  200. package/src/types/map.ts +36 -4
  201. package/src/types/marker.ts +24 -44
  202. package/src/types/overlay.ts +87 -0
  203. package/src/types/theme.ts +101 -0
  204. package/src/utils/colors.ts +48 -16
  205. package/src/utils/validation.ts +69 -0
  206. package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +0 -108
  207. package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +0 -63
  208. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +0 -408
  209. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +0 -68
  210. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +0 -176
  211. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +0 -252
  212. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +0 -252
  213. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +0 -195
  214. package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +0 -912
  215. package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +0 -70
  216. package/cpp/QuadTree.hpp +0 -246
  217. package/ios/NitroMapConfig/HybridNitroMapConfig.swift +0 -33
  218. package/ios/Providers/GoogleMapProvider+Camera.swift +0 -164
  219. package/ios/Providers/GoogleMapProvider.swift +0 -924
  220. package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +0 -68
  221. package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +0 -52
  222. 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,14 @@ 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 `CoordinateRing` to properly resolve imports.
69
+ namespace margelo::nitro::nitromap { struct CoordinateRing; }
70
+ // Forward declaration of `CircleData` to properly resolve imports.
71
+ namespace margelo::nitro::nitromap { struct CircleData; }
62
72
 
63
73
  #include "MapProvider.hpp"
64
74
  #include <optional>
@@ -81,8 +91,12 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
81
91
  #include <variant>
82
92
  #include "JVariant_String_MarkerColor.hpp"
83
93
  #include "JMarkerColor.hpp"
84
- #include "ClusterAnimationStyle.hpp"
85
- #include "JClusterAnimationStyle.hpp"
94
+ #include "EdgePadding.hpp"
95
+ #include "JEdgePadding.hpp"
96
+ #include "UserTrackingMode.hpp"
97
+ #include "JUserTrackingMode.hpp"
98
+ #include "Point.hpp"
99
+ #include "JPoint.hpp"
86
100
  #include "MapPressEvent.hpp"
87
101
  #include <functional>
88
102
  #include "JFunc_void_MapPressEvent.hpp"
@@ -90,8 +104,6 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
90
104
  #include "JMapPressEvent.hpp"
91
105
  #include "Coordinate.hpp"
92
106
  #include "JCoordinate.hpp"
93
- #include "Point.hpp"
94
- #include "JPoint.hpp"
95
107
  #include "JFunc_void.hpp"
96
108
  #include "RegionChangeEvent.hpp"
97
109
  #include "JFunc_void_RegionChangeEvent.hpp"
@@ -105,17 +117,20 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
105
117
  #include "ClusterPressEvent.hpp"
106
118
  #include "JFunc_void_ClusterPressEvent.hpp"
107
119
  #include "JClusterPressEvent.hpp"
120
+ #include "JFunc_void_std__string.hpp"
108
121
  #include "MapError.hpp"
109
122
  #include "JFunc_void_MapError.hpp"
110
123
  #include "JMapError.hpp"
124
+ #include "UserLocationChangeEvent.hpp"
125
+ #include "JFunc_void_UserLocationChangeEvent.hpp"
126
+ #include "JUserLocationChangeEvent.hpp"
127
+ #include "JFunc_void_UserTrackingMode.hpp"
111
128
  #include "Camera.hpp"
112
129
  #include <NitroModules/Promise.hpp>
113
130
  #include <NitroModules/JPromise.hpp>
114
131
  #include "JCamera.hpp"
115
132
  #include "MapBoundaries.hpp"
116
133
  #include "JMapBoundaries.hpp"
117
- #include "EdgePadding.hpp"
118
- #include "JEdgePadding.hpp"
119
134
  #include "MarkerData.hpp"
120
135
  #include "JMarkerData.hpp"
121
136
  #include "MarkerConfig.hpp"
@@ -129,6 +144,14 @@ namespace margelo::nitro::nitromap { enum class MarkerAnimation; }
129
144
  #include "JPriceMarkerStyle.hpp"
130
145
  #include "MarkerAnimation.hpp"
131
146
  #include "JMarkerAnimation.hpp"
147
+ #include "PolylineData.hpp"
148
+ #include "JPolylineData.hpp"
149
+ #include "PolygonData.hpp"
150
+ #include "JPolygonData.hpp"
151
+ #include "CoordinateRing.hpp"
152
+ #include "JCoordinateRing.hpp"
153
+ #include "CircleData.hpp"
154
+ #include "JCircleData.hpp"
132
155
 
133
156
  namespace margelo::nitro::nitromap {
134
157
 
@@ -177,6 +200,15 @@ namespace margelo::nitro::nitromap {
177
200
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JRegion> /* initialRegion */)>("setInitialRegion");
178
201
  method(_javaPart, initialRegion.has_value() ? JRegion::fromCpp(initialRegion.value()) : nullptr);
179
202
  }
203
+ std::optional<Region> JHybridNitroMapSpec::getRegion() {
204
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JRegion>()>("getRegion");
205
+ auto __result = method(_javaPart);
206
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
207
+ }
208
+ void JHybridNitroMapSpec::setRegion(const std::optional<Region>& region) {
209
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JRegion> /* region */)>("setRegion");
210
+ method(_javaPart, region.has_value() ? JRegion::fromCpp(region.value()) : nullptr);
211
+ }
180
212
  std::optional<bool> JHybridNitroMapSpec::getShowsUserLocation() {
181
213
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsUserLocation");
182
214
  auto __result = method(_javaPart);
@@ -258,15 +290,6 @@ namespace margelo::nitro::nitromap {
258
290
  return __array;
259
291
  }() : nullptr);
260
292
  }
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
293
  std::optional<ClusterConfig> JHybridNitroMapSpec::getClusterConfig() {
271
294
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JClusterConfig>()>("getClusterConfig");
272
295
  auto __result = method(_javaPart);
@@ -276,6 +299,60 @@ namespace margelo::nitro::nitromap {
276
299
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JClusterConfig> /* clusterConfig */)>("setClusterConfig");
277
300
  method(_javaPart, clusterConfig.has_value() ? JClusterConfig::fromCpp(clusterConfig.value()) : nullptr);
278
301
  }
302
+ EdgePadding JHybridNitroMapSpec::getMapPadding() {
303
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JEdgePadding>()>("getMapPadding");
304
+ auto __result = method(_javaPart);
305
+ return __result->toCpp();
306
+ }
307
+ void JHybridNitroMapSpec::setMapPadding(const EdgePadding& mapPadding) {
308
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JEdgePadding> /* mapPadding */)>("setMapPadding");
309
+ method(_javaPart, JEdgePadding::fromCpp(mapPadding));
310
+ }
311
+ std::optional<bool> JHybridNitroMapSpec::getShowsTraffic() {
312
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsTraffic");
313
+ auto __result = method(_javaPart);
314
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
315
+ }
316
+ void JHybridNitroMapSpec::setShowsTraffic(std::optional<bool> showsTraffic) {
317
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsTraffic */)>("setShowsTraffic");
318
+ method(_javaPart, showsTraffic.has_value() ? jni::JBoolean::valueOf(showsTraffic.value()) : nullptr);
319
+ }
320
+ std::optional<bool> JHybridNitroMapSpec::getShowsBuildings() {
321
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsBuildings");
322
+ auto __result = method(_javaPart);
323
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
324
+ }
325
+ void JHybridNitroMapSpec::setShowsBuildings(std::optional<bool> showsBuildings) {
326
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsBuildings */)>("setShowsBuildings");
327
+ method(_javaPart, showsBuildings.has_value() ? jni::JBoolean::valueOf(showsBuildings.value()) : nullptr);
328
+ }
329
+ std::optional<bool> JHybridNitroMapSpec::getShowsCompass() {
330
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getShowsCompass");
331
+ auto __result = method(_javaPart);
332
+ return __result != nullptr ? std::make_optional(static_cast<bool>(__result->value())) : std::nullopt;
333
+ }
334
+ void JHybridNitroMapSpec::setShowsCompass(std::optional<bool> showsCompass) {
335
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* showsCompass */)>("setShowsCompass");
336
+ method(_javaPart, showsCompass.has_value() ? jni::JBoolean::valueOf(showsCompass.value()) : nullptr);
337
+ }
338
+ double JHybridNitroMapSpec::getMinZoom() {
339
+ static const auto method = javaClassStatic()->getMethod<double()>("getMinZoom");
340
+ auto __result = method(_javaPart);
341
+ return __result;
342
+ }
343
+ void JHybridNitroMapSpec::setMinZoom(double minZoom) {
344
+ static const auto method = javaClassStatic()->getMethod<void(double /* minZoom */)>("setMinZoom");
345
+ method(_javaPart, minZoom);
346
+ }
347
+ double JHybridNitroMapSpec::getMaxZoom() {
348
+ static const auto method = javaClassStatic()->getMethod<double()>("getMaxZoom");
349
+ auto __result = method(_javaPart);
350
+ return __result;
351
+ }
352
+ void JHybridNitroMapSpec::setMaxZoom(double maxZoom) {
353
+ static const auto method = javaClassStatic()->getMethod<void(double /* maxZoom */)>("setMaxZoom");
354
+ method(_javaPart, maxZoom);
355
+ }
279
356
  std::optional<bool> JHybridNitroMapSpec::getDarkMode() {
280
357
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JBoolean>()>("getDarkMode");
281
358
  auto __result = method(_javaPart);
@@ -285,6 +362,42 @@ namespace margelo::nitro::nitromap {
285
362
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JBoolean> /* darkMode */)>("setDarkMode");
286
363
  method(_javaPart, darkMode.has_value() ? jni::JBoolean::valueOf(darkMode.value()) : nullptr);
287
364
  }
365
+ std::optional<UserTrackingMode> JHybridNitroMapSpec::getUserTrackingMode() {
366
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JUserTrackingMode>()>("getUserTrackingMode");
367
+ auto __result = method(_javaPart);
368
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
369
+ }
370
+ void JHybridNitroMapSpec::setUserTrackingMode(std::optional<UserTrackingMode> userTrackingMode) {
371
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUserTrackingMode> /* userTrackingMode */)>("setUserTrackingMode");
372
+ method(_javaPart, userTrackingMode.has_value() ? JUserTrackingMode::fromCpp(userTrackingMode.value()) : nullptr);
373
+ }
374
+ std::string JHybridNitroMapSpec::getUserLocationImage() {
375
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getUserLocationImage");
376
+ auto __result = method(_javaPart);
377
+ return __result->toStdString();
378
+ }
379
+ void JHybridNitroMapSpec::setUserLocationImage(const std::string& userLocationImage) {
380
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* userLocationImage */)>("setUserLocationImage");
381
+ method(_javaPart, jni::make_jstring(userLocationImage));
382
+ }
383
+ double JHybridNitroMapSpec::getUserLocationSize() {
384
+ static const auto method = javaClassStatic()->getMethod<double()>("getUserLocationSize");
385
+ auto __result = method(_javaPart);
386
+ return __result;
387
+ }
388
+ void JHybridNitroMapSpec::setUserLocationSize(double userLocationSize) {
389
+ static const auto method = javaClassStatic()->getMethod<void(double /* userLocationSize */)>("setUserLocationSize");
390
+ method(_javaPart, userLocationSize);
391
+ }
392
+ std::optional<Point> JHybridNitroMapSpec::getUserLocationAnchor() {
393
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPoint>()>("getUserLocationAnchor");
394
+ auto __result = method(_javaPart);
395
+ return __result != nullptr ? std::make_optional(__result->toCpp()) : std::nullopt;
396
+ }
397
+ void JHybridNitroMapSpec::setUserLocationAnchor(const std::optional<Point>& userLocationAnchor) {
398
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPoint> /* userLocationAnchor */)>("setUserLocationAnchor");
399
+ method(_javaPart, userLocationAnchor.has_value() ? JPoint::fromCpp(userLocationAnchor.value()) : nullptr);
400
+ }
288
401
  std::optional<std::function<void(const MapPressEvent& /* event */)>> JHybridNitroMapSpec::getOnPress() {
289
402
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapPressEvent::javaobject>()>("getOnPress_cxx");
290
403
  auto __result = method(_javaPart);
@@ -455,6 +568,57 @@ namespace margelo::nitro::nitromap {
455
568
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_ClusterPressEvent::javaobject> /* onClusterPress */)>("setOnClusterPress_cxx");
456
569
  method(_javaPart, onClusterPress.has_value() ? JFunc_void_ClusterPressEvent_cxx::fromCpp(onClusterPress.value()) : nullptr);
457
570
  }
571
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnPolylinePress() {
572
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnPolylinePress_cxx");
573
+ auto __result = method(_javaPart);
574
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
575
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
576
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
577
+ return downcast->cthis()->getFunction();
578
+ } else {
579
+ auto __resultRef = jni::make_global(__result);
580
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
581
+ }
582
+ }()) : std::nullopt;
583
+ }
584
+ void JHybridNitroMapSpec::setOnPolylinePress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolylinePress) {
585
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onPolylinePress */)>("setOnPolylinePress_cxx");
586
+ method(_javaPart, onPolylinePress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onPolylinePress.value()) : nullptr);
587
+ }
588
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnPolygonPress() {
589
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnPolygonPress_cxx");
590
+ auto __result = method(_javaPart);
591
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
592
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
593
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
594
+ return downcast->cthis()->getFunction();
595
+ } else {
596
+ auto __resultRef = jni::make_global(__result);
597
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
598
+ }
599
+ }()) : std::nullopt;
600
+ }
601
+ void JHybridNitroMapSpec::setOnPolygonPress(const std::optional<std::function<void(const std::string& /* id */)>>& onPolygonPress) {
602
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onPolygonPress */)>("setOnPolygonPress_cxx");
603
+ method(_javaPart, onPolygonPress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onPolygonPress.value()) : nullptr);
604
+ }
605
+ std::optional<std::function<void(const std::string& /* id */)>> JHybridNitroMapSpec::getOnCirclePress() {
606
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_std__string::javaobject>()>("getOnCirclePress_cxx");
607
+ auto __result = method(_javaPart);
608
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const std::string& /* id */)> {
609
+ if (__result->isInstanceOf(JFunc_void_std__string_cxx::javaClassStatic())) [[likely]] {
610
+ auto downcast = jni::static_ref_cast<JFunc_void_std__string_cxx::javaobject>(__result);
611
+ return downcast->cthis()->getFunction();
612
+ } else {
613
+ auto __resultRef = jni::make_global(__result);
614
+ return JNICallable<JFunc_void_std__string, void(std::string)>(std::move(__resultRef));
615
+ }
616
+ }()) : std::nullopt;
617
+ }
618
+ void JHybridNitroMapSpec::setOnCirclePress(const std::optional<std::function<void(const std::string& /* id */)>>& onCirclePress) {
619
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* onCirclePress */)>("setOnCirclePress_cxx");
620
+ method(_javaPart, onCirclePress.has_value() ? JFunc_void_std__string_cxx::fromCpp(onCirclePress.value()) : nullptr);
621
+ }
458
622
  std::optional<std::function<void(const MapError& /* error */)>> JHybridNitroMapSpec::getOnError() {
459
623
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapError::javaobject>()>("getOnError_cxx");
460
624
  auto __result = method(_javaPart);
@@ -472,6 +636,74 @@ namespace margelo::nitro::nitromap {
472
636
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_MapError::javaobject> /* onError */)>("setOnError_cxx");
473
637
  method(_javaPart, onError.has_value() ? JFunc_void_MapError_cxx::fromCpp(onError.value()) : nullptr);
474
638
  }
639
+ std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>> JHybridNitroMapSpec::getOnUserLocationChange() {
640
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_UserLocationChangeEvent::javaobject>()>("getOnUserLocationChange_cxx");
641
+ auto __result = method(_javaPart);
642
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const UserLocationChangeEvent& /* event */)> {
643
+ if (__result->isInstanceOf(JFunc_void_UserLocationChangeEvent_cxx::javaClassStatic())) [[likely]] {
644
+ auto downcast = jni::static_ref_cast<JFunc_void_UserLocationChangeEvent_cxx::javaobject>(__result);
645
+ return downcast->cthis()->getFunction();
646
+ } else {
647
+ auto __resultRef = jni::make_global(__result);
648
+ return JNICallable<JFunc_void_UserLocationChangeEvent, void(UserLocationChangeEvent)>(std::move(__resultRef));
649
+ }
650
+ }()) : std::nullopt;
651
+ }
652
+ void JHybridNitroMapSpec::setOnUserLocationChange(const std::optional<std::function<void(const UserLocationChangeEvent& /* event */)>>& onUserLocationChange) {
653
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UserLocationChangeEvent::javaobject> /* onUserLocationChange */)>("setOnUserLocationChange_cxx");
654
+ method(_javaPart, onUserLocationChange.has_value() ? JFunc_void_UserLocationChangeEvent_cxx::fromCpp(onUserLocationChange.value()) : nullptr);
655
+ }
656
+ std::optional<std::function<void(UserTrackingMode /* mode */)>> JHybridNitroMapSpec::getOnUserTrackingModeChange() {
657
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_UserTrackingMode::javaobject>()>("getOnUserTrackingModeChange_cxx");
658
+ auto __result = method(_javaPart);
659
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(UserTrackingMode /* mode */)> {
660
+ if (__result->isInstanceOf(JFunc_void_UserTrackingMode_cxx::javaClassStatic())) [[likely]] {
661
+ auto downcast = jni::static_ref_cast<JFunc_void_UserTrackingMode_cxx::javaobject>(__result);
662
+ return downcast->cthis()->getFunction();
663
+ } else {
664
+ auto __resultRef = jni::make_global(__result);
665
+ return JNICallable<JFunc_void_UserTrackingMode, void(UserTrackingMode)>(std::move(__resultRef));
666
+ }
667
+ }()) : std::nullopt;
668
+ }
669
+ void JHybridNitroMapSpec::setOnUserTrackingModeChange(const std::optional<std::function<void(UserTrackingMode /* mode */)>>& onUserTrackingModeChange) {
670
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_UserTrackingMode::javaobject> /* onUserTrackingModeChange */)>("setOnUserTrackingModeChange_cxx");
671
+ method(_javaPart, onUserTrackingModeChange.has_value() ? JFunc_void_UserTrackingMode_cxx::fromCpp(onUserTrackingModeChange.value()) : nullptr);
672
+ }
673
+ std::optional<std::function<void(const MapError& /* error */)>> JHybridNitroMapSpec::getOnUserLocationError() {
674
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_MapError::javaobject>()>("getOnUserLocationError_cxx");
675
+ auto __result = method(_javaPart);
676
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void(const MapError& /* error */)> {
677
+ if (__result->isInstanceOf(JFunc_void_MapError_cxx::javaClassStatic())) [[likely]] {
678
+ auto downcast = jni::static_ref_cast<JFunc_void_MapError_cxx::javaobject>(__result);
679
+ return downcast->cthis()->getFunction();
680
+ } else {
681
+ auto __resultRef = jni::make_global(__result);
682
+ return JNICallable<JFunc_void_MapError, void(MapError)>(std::move(__resultRef));
683
+ }
684
+ }()) : std::nullopt;
685
+ }
686
+ void JHybridNitroMapSpec::setOnUserLocationError(const std::optional<std::function<void(const MapError& /* error */)>>& onUserLocationError) {
687
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_MapError::javaobject> /* onUserLocationError */)>("setOnUserLocationError_cxx");
688
+ method(_javaPart, onUserLocationError.has_value() ? JFunc_void_MapError_cxx::fromCpp(onUserLocationError.value()) : nullptr);
689
+ }
690
+ std::optional<std::function<void()>> JHybridNitroMapSpec::getOnMapIdle() {
691
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnMapIdle_cxx");
692
+ auto __result = method(_javaPart);
693
+ return __result != nullptr ? std::make_optional([&]() -> std::function<void()> {
694
+ if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
695
+ auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(__result);
696
+ return downcast->cthis()->getFunction();
697
+ } else {
698
+ auto __resultRef = jni::make_global(__result);
699
+ return JNICallable<JFunc_void, void()>(std::move(__resultRef));
700
+ }
701
+ }()) : std::nullopt;
702
+ }
703
+ void JHybridNitroMapSpec::setOnMapIdle(const std::optional<std::function<void()>>& onMapIdle) {
704
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onMapIdle */)>("setOnMapIdle_cxx");
705
+ method(_javaPart, onMapIdle.has_value() ? JFunc_void_cxx::fromCpp(onMapIdle.value()) : nullptr);
706
+ }
475
707
 
476
708
  // Methods
477
709
  void JHybridNitroMapSpec::animateToRegion(const Region& region, std::optional<double> duration) {
@@ -491,6 +723,19 @@ namespace margelo::nitro::nitromap {
491
723
  return __array;
492
724
  }(), edgePadding.has_value() ? JEdgePadding::fromCpp(edgePadding.value()) : nullptr, animated.has_value() ? jni::JBoolean::valueOf(animated.value()) : nullptr);
493
725
  }
726
+ void JHybridNitroMapSpec::fitToSuppliedMarkers(const std::vector<std::string>& markerIds, const std::optional<EdgePadding>& edgePadding, std::optional<bool> animated) {
727
+ 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");
728
+ method(_javaPart, [&]() {
729
+ size_t __size = markerIds.size();
730
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
731
+ for (size_t __i = 0; __i < __size; __i++) {
732
+ const auto& __element = markerIds[__i];
733
+ auto __elementJni = jni::make_jstring(__element);
734
+ __array->setElement(__i, *__elementJni);
735
+ }
736
+ return __array;
737
+ }(), edgePadding.has_value() ? JEdgePadding::fromCpp(edgePadding.value()) : nullptr, animated.has_value() ? jni::JBoolean::valueOf(animated.value()) : nullptr);
738
+ }
494
739
  void JHybridNitroMapSpec::animateCamera(const Camera& camera, std::optional<double> duration) {
495
740
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCamera> /* camera */, jni::alias_ref<jni::JDouble> /* duration */)>("animateCamera");
496
741
  method(_javaPart, JCamera::fromCpp(camera), duration.has_value() ? jni::JDouble::valueOf(duration.value()) : nullptr);
@@ -544,6 +789,20 @@ namespace margelo::nitro::nitromap {
544
789
  return __promise;
545
790
  }();
546
791
  }
792
+ void JHybridNitroMapSpec::centerOnUserLocation() {
793
+ static const auto method = javaClassStatic()->getMethod<void()>("centerOnUserLocation");
794
+ method(_javaPart);
795
+ }
796
+ Point JHybridNitroMapSpec::pointForCoordinate(const Coordinate& coordinate) {
797
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPoint>(jni::alias_ref<JCoordinate> /* coordinate */)>("pointForCoordinate");
798
+ auto __result = method(_javaPart, JCoordinate::fromCpp(coordinate));
799
+ return __result->toCpp();
800
+ }
801
+ Coordinate JHybridNitroMapSpec::coordinateForPoint(const Point& point) {
802
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JCoordinate>(jni::alias_ref<JPoint> /* point */)>("coordinateForPoint");
803
+ auto __result = method(_javaPart, JPoint::fromCpp(point));
804
+ return __result->toCpp();
805
+ }
547
806
  void JHybridNitroMapSpec::setIsDarkMode(bool enabled) {
548
807
  static const auto method = javaClassStatic()->getMethod<void(jboolean /* enabled */)>("setIsDarkMode");
549
808
  method(_javaPart, enabled);
@@ -577,6 +836,10 @@ namespace margelo::nitro::nitromap {
577
836
  static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("selectMarker");
578
837
  method(_javaPart, jni::make_jstring(id));
579
838
  }
839
+ void JHybridNitroMapSpec::deselectMarker() {
840
+ static const auto method = javaClassStatic()->getMethod<void()>("deselectMarker");
841
+ method(_javaPart);
842
+ }
580
843
  void JHybridNitroMapSpec::clearMarkers() {
581
844
  static const auto method = javaClassStatic()->getMethod<void()>("clearMarkers");
582
845
  method(_javaPart);
@@ -589,5 +852,53 @@ namespace margelo::nitro::nitromap {
589
852
  static const auto method = javaClassStatic()->getMethod<void()>("refreshClusters");
590
853
  method(_javaPart);
591
854
  }
855
+ void JHybridNitroMapSpec::addPolyline(const PolylineData& polyline) {
856
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolylineData> /* polyline */)>("addPolyline");
857
+ method(_javaPart, JPolylineData::fromCpp(polyline));
858
+ }
859
+ void JHybridNitroMapSpec::updatePolyline(const PolylineData& polyline) {
860
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolylineData> /* polyline */)>("updatePolyline");
861
+ method(_javaPart, JPolylineData::fromCpp(polyline));
862
+ }
863
+ void JHybridNitroMapSpec::removePolyline(const std::string& id) {
864
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removePolyline");
865
+ method(_javaPart, jni::make_jstring(id));
866
+ }
867
+ void JHybridNitroMapSpec::clearPolylines() {
868
+ static const auto method = javaClassStatic()->getMethod<void()>("clearPolylines");
869
+ method(_javaPart);
870
+ }
871
+ void JHybridNitroMapSpec::addPolygon(const PolygonData& polygon) {
872
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolygonData> /* polygon */)>("addPolygon");
873
+ method(_javaPart, JPolygonData::fromCpp(polygon));
874
+ }
875
+ void JHybridNitroMapSpec::updatePolygon(const PolygonData& polygon) {
876
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPolygonData> /* polygon */)>("updatePolygon");
877
+ method(_javaPart, JPolygonData::fromCpp(polygon));
878
+ }
879
+ void JHybridNitroMapSpec::removePolygon(const std::string& id) {
880
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removePolygon");
881
+ method(_javaPart, jni::make_jstring(id));
882
+ }
883
+ void JHybridNitroMapSpec::clearPolygons() {
884
+ static const auto method = javaClassStatic()->getMethod<void()>("clearPolygons");
885
+ method(_javaPart);
886
+ }
887
+ void JHybridNitroMapSpec::addCircle(const CircleData& circle) {
888
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCircleData> /* circle */)>("addCircle");
889
+ method(_javaPart, JCircleData::fromCpp(circle));
890
+ }
891
+ void JHybridNitroMapSpec::updateCircle(const CircleData& circle) {
892
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JCircleData> /* circle */)>("updateCircle");
893
+ method(_javaPart, JCircleData::fromCpp(circle));
894
+ }
895
+ void JHybridNitroMapSpec::removeCircle(const std::string& id) {
896
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* id */)>("removeCircle");
897
+ method(_javaPart, jni::make_jstring(id));
898
+ }
899
+ void JHybridNitroMapSpec::clearCircles() {
900
+ static const auto method = javaClassStatic()->getMethod<void()>("clearCircles");
901
+ method(_javaPart);
902
+ }
592
903
 
593
904
  } // 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 + "!");