react-native-map4d-map-dtqg 0.1.3 → 0.1.4

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 (199) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +133 -133
  3. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  7. package/android/.gradle/8.9/gc.properties +0 -0
  8. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  9. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/9.2.0/gc.properties +0 -0
  13. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  15. package/android/.gradle/vcs-1/gc.properties +0 -0
  16. package/android/build.gradle +60 -60
  17. package/android/src/main/AndroidManifest.xml +4 -4
  18. package/android/src/main/java/com/reactnativemap4dmap/ImageUtils.java +87 -87
  19. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapModule.java +298 -298
  20. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapPackage.java +35 -35
  21. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapViewManager.java +31 -31
  22. package/android/src/main/java/com/reactnativemap4dmap/RMFBuilding.java +167 -167
  23. package/android/src/main/java/com/reactnativemap4dmap/RMFBuildingManager.java +121 -121
  24. package/android/src/main/java/com/reactnativemap4dmap/RMFCircle.java +105 -105
  25. package/android/src/main/java/com/reactnativemap4dmap/RMFCircleManager.java +121 -121
  26. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRenderer.java +502 -502
  27. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRendererManager.java +143 -143
  28. package/android/src/main/java/com/reactnativemap4dmap/RMFFeature.java +17 -17
  29. package/android/src/main/java/com/reactnativemap4dmap/RMFMapView.java +1172 -1172
  30. package/android/src/main/java/com/reactnativemap4dmap/RMFMapViewManager.java +231 -231
  31. package/android/src/main/java/com/reactnativemap4dmap/RMFMarker.java +412 -412
  32. package/android/src/main/java/com/reactnativemap4dmap/RMFMarkerManager.java +211 -211
  33. package/android/src/main/java/com/reactnativemap4dmap/RMFPOI.java +222 -222
  34. package/android/src/main/java/com/reactnativemap4dmap/RMFPOIManager.java +119 -119
  35. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygon.java +172 -172
  36. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygonManager.java +147 -147
  37. package/android/src/main/java/com/reactnativemap4dmap/RMFPolyline.java +146 -146
  38. package/android/src/main/java/com/reactnativemap4dmap/RMFPolylineManager.java +137 -137
  39. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlay.java +95 -95
  40. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlayManager.java +64 -64
  41. package/android/src/main/java/com/reactnativemap4dmap/SizeReportingShadowNode.java +31 -31
  42. package/android/src/main/java/com/reactnativemap4dmap/ViewAttacherGroup.java +31 -31
  43. package/android/src/main/java/com/reactnativemap4dmap/ViewChangesTracker.java +70 -70
  44. package/android/src/main/java/vn/map4d/map/annotations/RMFBitmapDescriptor.java +9 -9
  45. package/ios/Map4dMap.h +7 -7
  46. package/ios/Map4dMap.m +14 -14
  47. package/ios/Map4dMapViewManager.m +34 -34
  48. package/ios/RCTConvert+Map4dMap.h +33 -33
  49. package/ios/RCTConvert+Map4dMap.m +112 -112
  50. package/ios/RMFCircle.h +37 -37
  51. package/ios/RMFCircle.m +100 -100
  52. package/ios/RMFCircleManager.h +18 -18
  53. package/ios/RMFCircleManager.m +155 -155
  54. package/ios/RMFCircleMap4d.h +23 -23
  55. package/ios/RMFCircleMap4d.m +13 -13
  56. package/ios/RMFCoordinate.h +22 -22
  57. package/ios/RMFCoordinate.m +13 -13
  58. package/ios/RMFDirectionsMarkerOptions.h +24 -24
  59. package/ios/RMFDirectionsMarkerOptions.m +23 -23
  60. package/ios/RMFDirectionsRenderer.h +47 -47
  61. package/ios/RMFDirectionsRenderer.m +182 -182
  62. package/ios/RMFDirectionsRendererManager.h +17 -17
  63. package/ios/RMFDirectionsRendererManager.m +84 -84
  64. package/ios/RMFDirectionsRendererMap4d.h +21 -21
  65. package/ios/RMFDirectionsRendererMap4d.m +12 -12
  66. package/ios/RMFDummyView.h +6 -6
  67. package/ios/RMFDummyView.m +12 -12
  68. package/ios/RMFEventResponse.h +39 -39
  69. package/ios/RMFEventResponse.m +98 -98
  70. package/ios/RMFIcon.h +24 -24
  71. package/ios/RMFIcon.m +35 -35
  72. package/ios/RMFMapView.h +84 -84
  73. package/ios/RMFMapView.m +376 -376
  74. package/ios/RMFMapViewManager.h +17 -17
  75. package/ios/RMFMapViewManager.m +509 -509
  76. package/ios/RMFMarker.h +57 -57
  77. package/ios/RMFMarker.m +267 -267
  78. package/ios/RMFMarkerManager.h +17 -17
  79. package/ios/RMFMarkerManager.m +156 -156
  80. package/ios/RMFMarkerMap4d.h +19 -19
  81. package/ios/RMFMarkerMap4d.m +13 -13
  82. package/ios/RMFPOI.h +38 -38
  83. package/ios/RMFPOI.m +123 -123
  84. package/ios/RMFPOIManager.h +18 -18
  85. package/ios/RMFPOIManager.m +168 -168
  86. package/ios/RMFPOIMap4d.h +22 -22
  87. package/ios/RMFPOIMap4d.m +12 -12
  88. package/ios/RMFPolygon.h +41 -41
  89. package/ios/RMFPolygon.m +106 -106
  90. package/ios/RMFPolygonManager.h +18 -18
  91. package/ios/RMFPolygonManager.m +141 -141
  92. package/ios/RMFPolygonMap4d.h +23 -23
  93. package/ios/RMFPolygonMap4d.m +15 -15
  94. package/ios/RMFPolyline.h +38 -38
  95. package/ios/RMFPolyline.m +101 -101
  96. package/ios/RMFPolylineManager.h +18 -18
  97. package/ios/RMFPolylineManager.m +139 -139
  98. package/ios/RMFPolylineMap4d.h +22 -22
  99. package/ios/RMFPolylineMap4d.m +15 -15
  100. package/ios/building/RMFBuilding.h +41 -41
  101. package/ios/building/RMFBuilding.m +104 -104
  102. package/ios/building/RMFBuildingManager.h +19 -19
  103. package/ios/building/RMFBuildingManager.m +133 -133
  104. package/ios/building/RMFBuildingMap4d.h +23 -23
  105. package/ios/building/RMFBuildingMap4d.m +15 -15
  106. package/ios/overlays/RMFTileOverlay.h +36 -36
  107. package/ios/overlays/RMFTileOverlay.m +64 -64
  108. package/ios/overlays/RMFTileOverlayManager.h +17 -17
  109. package/ios/overlays/RMFTileOverlayManager.m +27 -27
  110. package/lib/commonjs/components/MFBanDoSo.js.map +1 -1
  111. package/lib/commonjs/components/MFBuilding.js +50 -32
  112. package/lib/commonjs/components/MFBuilding.js.map +1 -1
  113. package/lib/commonjs/components/MFCircle.js +44 -26
  114. package/lib/commonjs/components/MFCircle.js.map +1 -1
  115. package/lib/commonjs/components/MFDirectionsRenderer.js +56 -38
  116. package/lib/commonjs/components/MFDirectionsRenderer.js.map +1 -1
  117. package/lib/commonjs/components/MFMapView.js +91 -74
  118. package/lib/commonjs/components/MFMapView.js.map +1 -1
  119. package/lib/commonjs/components/MFMarker.js +59 -41
  120. package/lib/commonjs/components/MFMarker.js.map +1 -1
  121. package/lib/commonjs/components/MFPOI.js +44 -26
  122. package/lib/commonjs/components/MFPOI.js.map +1 -1
  123. package/lib/commonjs/components/MFPolygon.js +46 -28
  124. package/lib/commonjs/components/MFPolygon.js.map +1 -1
  125. package/lib/commonjs/components/MFPolyline.js +42 -24
  126. package/lib/commonjs/components/MFPolyline.js.map +1 -1
  127. package/lib/commonjs/components/MFTileOverlay.js +9 -9
  128. package/lib/commonjs/components/MFTileOverlay.js.map +1 -1
  129. package/lib/commonjs/components/Map4dMapView.js.map +1 -1
  130. package/lib/commonjs/components/extends/AreaFocusManager.js +16 -16
  131. package/lib/commonjs/components/extends/AreaFocusManager.js.map +1 -1
  132. package/lib/commonjs/components/extends/AreaFocuser.js +2 -2
  133. package/lib/commonjs/components/extends/AreaFocuser.js.map +1 -1
  134. package/lib/commonjs/components/extends/BoundHelper.js.map +1 -1
  135. package/lib/commonjs/components/extends/area/AreaFocusAreas.js.map +1 -1
  136. package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  137. package/lib/commonjs/components/extends/area/AreaFocusSession.js.map +1 -1
  138. package/lib/commonjs/components/extends/area/AreaFocusTypes.js +18 -18
  139. package/lib/commonjs/components/extends/area/AreaFocusTypes.js.map +1 -1
  140. package/lib/commonjs/components/internal/DefaultRoadmapStyle.js.map +1 -1
  141. package/lib/commonjs/components/internal/GeojsonStyleUtils.js.map +1 -1
  142. package/lib/commonjs/index.js.map +1 -1
  143. package/lib/module/components/MFBanDoSo.js.map +1 -1
  144. package/lib/module/components/MFBuilding.js +51 -33
  145. package/lib/module/components/MFBuilding.js.map +1 -1
  146. package/lib/module/components/MFCircle.js +45 -27
  147. package/lib/module/components/MFCircle.js.map +1 -1
  148. package/lib/module/components/MFDirectionsRenderer.js +57 -39
  149. package/lib/module/components/MFDirectionsRenderer.js.map +1 -1
  150. package/lib/module/components/MFMapView.js +92 -75
  151. package/lib/module/components/MFMapView.js.map +1 -1
  152. package/lib/module/components/MFMarker.js +60 -42
  153. package/lib/module/components/MFMarker.js.map +1 -1
  154. package/lib/module/components/MFPOI.js +45 -27
  155. package/lib/module/components/MFPOI.js.map +1 -1
  156. package/lib/module/components/MFPolygon.js +47 -29
  157. package/lib/module/components/MFPolygon.js.map +1 -1
  158. package/lib/module/components/MFPolyline.js +43 -25
  159. package/lib/module/components/MFPolyline.js.map +1 -1
  160. package/lib/module/components/MFTileOverlay.js +9 -9
  161. package/lib/module/components/MFTileOverlay.js.map +1 -1
  162. package/lib/module/components/Map4dMapView.js.map +1 -1
  163. package/lib/module/components/extends/AreaFocusManager.js +16 -16
  164. package/lib/module/components/extends/AreaFocusManager.js.map +1 -1
  165. package/lib/module/components/extends/AreaFocuser.js +2 -2
  166. package/lib/module/components/extends/AreaFocuser.js.map +1 -1
  167. package/lib/module/components/extends/BoundHelper.js.map +1 -1
  168. package/lib/module/components/extends/area/AreaFocusAreas.js.map +1 -1
  169. package/lib/module/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
  170. package/lib/module/components/extends/area/AreaFocusSession.js.map +1 -1
  171. package/lib/module/components/extends/area/AreaFocusTypes.js +18 -18
  172. package/lib/module/components/extends/area/AreaFocusTypes.js.map +1 -1
  173. package/lib/module/components/internal/DefaultRoadmapStyle.js.map +1 -1
  174. package/lib/module/components/internal/GeojsonStyleUtils.js.map +1 -1
  175. package/lib/module/index.js.map +1 -1
  176. package/lib/typescript/components/Map4dMapView.d.ts +7 -7
  177. package/package.json +152 -152
  178. package/react-native-map4d-map.podspec +20 -20
  179. package/src/components/MFBanDoSo.js +124 -124
  180. package/src/components/MFBuilding.js +200 -187
  181. package/src/components/MFCircle.js +186 -173
  182. package/src/components/MFDirectionsRenderer.js +250 -237
  183. package/src/components/MFMapView.js +480 -464
  184. package/src/components/MFMarker.js +259 -246
  185. package/src/components/MFPOI.js +197 -184
  186. package/src/components/MFPolygon.js +199 -186
  187. package/src/components/MFPolyline.js +185 -172
  188. package/src/components/MFTileOverlay.js +45 -45
  189. package/src/components/Map4dMapView.tsx +26 -26
  190. package/src/components/extends/AreaFocusManager.js +196 -196
  191. package/src/components/extends/AreaFocuser.js +61 -61
  192. package/src/components/extends/BoundHelper.js +31 -31
  193. package/src/components/extends/area/AreaFocusAreas.js +164 -164
  194. package/src/components/extends/area/AreaFocusGeometryUtils.js +164 -164
  195. package/src/components/extends/area/AreaFocusSession.js +100 -100
  196. package/src/components/extends/area/AreaFocusTypes.js +36 -36
  197. package/src/components/internal/DefaultRoadmapStyle.js +3365 -3365
  198. package/src/components/internal/GeojsonStyleUtils.js +143 -143
  199. package/src/index.js +25 -25
@@ -1,237 +1,250 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import {ViewPropTypes, ColorPropType} from 'deprecated-react-native-prop-types';
4
- import {
5
- requireNativeComponent,
6
- Platform,
7
- Image,
8
- NativeModules,
9
- findNodeHandle,
10
- processColor
11
- } from 'react-native';
12
-
13
- const viewPropTypes = ViewPropTypes || View.propTypes;
14
-
15
- const propTypes = {
16
- ...viewPropTypes,
17
-
18
- /**
19
- * The directions to display on the map,
20
- * retrieved as an array of array of coordinates to describe the routes.
21
- * Similar to directions prop but has higher priority
22
- */
23
- routes: PropTypes.arrayOf(
24
- PropTypes.arrayOf(
25
- PropTypes.shape({
26
- latitude: PropTypes.number.isRequired,
27
- longitude: PropTypes.number.isRequired,
28
- })
29
- )
30
- ),
31
-
32
- /**
33
- * The directions to display on the map,
34
- * retrieved as a json string from Get route Map4D API (/sdk/route).
35
- * Similar to routes prop but with lower priority
36
- */
37
- directions: PropTypes.string,
38
-
39
- /**
40
- * The index of the main route, default value is 0.
41
- */
42
- activedIndex: PropTypes.number,
43
-
44
- /**
45
- * The active route stroke width.
46
- */
47
- activeStrokeWidth: PropTypes.number,
48
-
49
- /**
50
- * The active route color.
51
- */
52
- activeStrokeColor: ColorPropType,
53
-
54
- /**
55
- * The active route outline stroke width.
56
- */
57
- activeOutlineWidth: PropTypes.number,
58
-
59
- /**
60
- * The active route outline color.
61
- */
62
- activeOutlineColor: ColorPropType,
63
-
64
- /**
65
- * The inactive route stroke width.
66
- */
67
- inactiveStrokeWidth: PropTypes.number,
68
-
69
- /**
70
- * The inactive route color.
71
- */
72
- inactiveStrokeColor: ColorPropType,
73
-
74
- /**
75
- * The inactive route outline stroke width.
76
- */
77
- inactiveOutlineWidth: PropTypes.number,
78
-
79
- /**
80
- * The inactive route outline color.
81
- */
82
- inactiveOutlineColor: ColorPropType,
83
-
84
- /**
85
- * The options of the origin POI.
86
- */
87
- originPOIOptions: PropTypes.shape({
88
- coordinate: PropTypes.shape({
89
- latitude: PropTypes.number.isRequired,
90
- longitude: PropTypes.number.isRequired,
91
- }),
92
-
93
- icon: PropTypes.shape({
94
- uri: PropTypes.any.isRequired
95
- }),
96
-
97
- title: PropTypes.string,
98
-
99
- titleColor: ColorPropType,
100
-
101
- visible: PropTypes.bool,
102
- }),
103
-
104
- /**
105
- * The options of the destination POI.
106
- */
107
- destinationPOIOptions: PropTypes.shape({
108
- coordinate: PropTypes.shape({
109
- latitude: PropTypes.number.isRequired,
110
- longitude: PropTypes.number.isRequired,
111
- }),
112
-
113
- icon: PropTypes.shape({
114
- uri: PropTypes.any.isRequired
115
- }),
116
-
117
- title: PropTypes.string,
118
-
119
- titleColor: ColorPropType,
120
-
121
- visible: PropTypes.bool,
122
- }),
123
-
124
- /**
125
- * Callback that is called when the user presses on the routes.
126
- */
127
- onPress: PropTypes.func,
128
- };
129
-
130
- class MFDirectionsRenderer extends React.Component {
131
- constructor(props) {
132
- super(props)
133
- this._ref = this._ref.bind(this)
134
- this._onPress = this._onPress.bind(this)
135
- }
136
-
137
- setActivedIndex(index) {
138
- this._runCommand("setActivedIndex", [index])
139
- }
140
-
141
- setRoutes(routes) {
142
- this._runCommand("setRoutes", [routes])
143
- }
144
-
145
- setDirections(directions) {
146
- this._runCommand("setDirections", [directions])
147
- }
148
-
149
- render() {
150
- let originPOIOptions = this.props.originPOIOptions
151
- if (originPOIOptions) {
152
- if (originPOIOptions.titleColor) {
153
- originPOIOptions.titleColor = processColor(originPOIOptions.titleColor)
154
- }
155
- if (originPOIOptions.icon) {
156
- let uri = Image.resolveAssetSource(originPOIOptions.icon.uri) || {uri: originPOIOptions.icon.uri};
157
- originPOIOptions.icon = {uri: uri.uri}
158
- }
159
- }
160
-
161
- let destinationPOIOptions = this.props.destinationPOIOptions
162
- if (destinationPOIOptions) {
163
- if (destinationPOIOptions.titleColor) {
164
- destinationPOIOptions.titleColor = processColor(destinationPOIOptions.titleColor)
165
- }
166
- if (destinationPOIOptions.icon) {
167
- let uri = Image.resolveAssetSource(destinationPOIOptions.icon.uri) || {uri: destinationPOIOptions.icon.uri};
168
- destinationPOIOptions.icon = {uri: uri.uri}
169
- }
170
- }
171
-
172
- return <RMFDirectionsRenderer
173
- {...this.props}
174
- originPOIOptions={originPOIOptions}
175
- destinationPOIOptions={destinationPOIOptions}
176
- ref={this._ref}
177
- onPress={this._onPress}
178
- />;
179
- }
180
-
181
- _ref(ref) {
182
- this.renderer = ref;
183
- }
184
-
185
- _onPress(event) {
186
- event.stopPropagation();
187
- if (this.props.onPress) {
188
- this.props.onPress(event);
189
- }
190
- }
191
-
192
- _runCommand(name, args) {
193
- switch (Platform.OS) {
194
- case 'android':
195
- NativeModules.UIManager.dispatchViewManagerCommand(
196
- this._getHandle(),
197
- this._uiManagerCommand(name),
198
- args
199
- );
200
- break;
201
-
202
- case 'ios':
203
- this._mapManagerCommand(name)(this._getHandle(), ...args);
204
- break;
205
-
206
- default:
207
- break;
208
- }
209
- }
210
-
211
- _getHandle() {
212
- return findNodeHandle(this.renderer);
213
- }
214
-
215
- _uiManagerCommand(name) {
216
- const UIManager = NativeModules.UIManager;
217
- const componentName = "RMFDirectionsRenderer";
218
-
219
- if (!UIManager.getViewManagerConfig) {
220
- // RN < 0.58
221
- return UIManager[componentName].Commands[name];
222
- }
223
-
224
- // RN >= 0.58
225
- return UIManager.getViewManagerConfig(componentName).Commands[name];
226
- }
227
-
228
- _mapManagerCommand(name) {
229
- return NativeModules[`RMFDirectionsRenderer`][name];
230
- }
231
- }
232
-
233
- MFDirectionsRenderer.propTypes = propTypes;
234
-
235
- var RMFDirectionsRenderer = requireNativeComponent(`RMFDirectionsRenderer`, MFDirectionsRenderer);
236
-
237
- export { MFDirectionsRenderer }
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import {ViewPropTypes, ColorPropType} from 'deprecated-react-native-prop-types';
4
+ import {
5
+ requireNativeComponent,
6
+ Platform,
7
+ Image,
8
+ UIManager,
9
+ NativeModules,
10
+ findNodeHandle,
11
+ processColor
12
+ } from 'react-native';
13
+
14
+ const viewPropTypes = ViewPropTypes || View.propTypes;
15
+
16
+ const propTypes = {
17
+ ...viewPropTypes,
18
+
19
+ /**
20
+ * The directions to display on the map,
21
+ * retrieved as an array of array of coordinates to describe the routes.
22
+ * Similar to directions prop but has higher priority
23
+ */
24
+ routes: PropTypes.arrayOf(
25
+ PropTypes.arrayOf(
26
+ PropTypes.shape({
27
+ latitude: PropTypes.number.isRequired,
28
+ longitude: PropTypes.number.isRequired,
29
+ })
30
+ )
31
+ ),
32
+
33
+ /**
34
+ * The directions to display on the map,
35
+ * retrieved as a json string from Get route Map4D API (/sdk/route).
36
+ * Similar to routes prop but with lower priority
37
+ */
38
+ directions: PropTypes.string,
39
+
40
+ /**
41
+ * The index of the main route, default value is 0.
42
+ */
43
+ activedIndex: PropTypes.number,
44
+
45
+ /**
46
+ * The active route stroke width.
47
+ */
48
+ activeStrokeWidth: PropTypes.number,
49
+
50
+ /**
51
+ * The active route color.
52
+ */
53
+ activeStrokeColor: ColorPropType,
54
+
55
+ /**
56
+ * The active route outline stroke width.
57
+ */
58
+ activeOutlineWidth: PropTypes.number,
59
+
60
+ /**
61
+ * The active route outline color.
62
+ */
63
+ activeOutlineColor: ColorPropType,
64
+
65
+ /**
66
+ * The inactive route stroke width.
67
+ */
68
+ inactiveStrokeWidth: PropTypes.number,
69
+
70
+ /**
71
+ * The inactive route color.
72
+ */
73
+ inactiveStrokeColor: ColorPropType,
74
+
75
+ /**
76
+ * The inactive route outline stroke width.
77
+ */
78
+ inactiveOutlineWidth: PropTypes.number,
79
+
80
+ /**
81
+ * The inactive route outline color.
82
+ */
83
+ inactiveOutlineColor: ColorPropType,
84
+
85
+ /**
86
+ * The options of the origin POI.
87
+ */
88
+ originPOIOptions: PropTypes.shape({
89
+ coordinate: PropTypes.shape({
90
+ latitude: PropTypes.number.isRequired,
91
+ longitude: PropTypes.number.isRequired,
92
+ }),
93
+
94
+ icon: PropTypes.shape({
95
+ uri: PropTypes.any.isRequired
96
+ }),
97
+
98
+ title: PropTypes.string,
99
+
100
+ titleColor: ColorPropType,
101
+
102
+ visible: PropTypes.bool,
103
+ }),
104
+
105
+ /**
106
+ * The options of the destination POI.
107
+ */
108
+ destinationPOIOptions: PropTypes.shape({
109
+ coordinate: PropTypes.shape({
110
+ latitude: PropTypes.number.isRequired,
111
+ longitude: PropTypes.number.isRequired,
112
+ }),
113
+
114
+ icon: PropTypes.shape({
115
+ uri: PropTypes.any.isRequired
116
+ }),
117
+
118
+ title: PropTypes.string,
119
+
120
+ titleColor: ColorPropType,
121
+
122
+ visible: PropTypes.bool,
123
+ }),
124
+
125
+ /**
126
+ * Callback that is called when the user presses on the routes.
127
+ */
128
+ onPress: PropTypes.func,
129
+ };
130
+
131
+ class MFDirectionsRenderer extends React.Component {
132
+ constructor(props) {
133
+ super(props)
134
+ this._ref = this._ref.bind(this)
135
+ this._onPress = this._onPress.bind(this)
136
+ }
137
+
138
+ setActivedIndex(index) {
139
+ this._runCommand("setActivedIndex", [index])
140
+ }
141
+
142
+ setRoutes(routes) {
143
+ this._runCommand("setRoutes", [routes])
144
+ }
145
+
146
+ setDirections(directions) {
147
+ this._runCommand("setDirections", [directions])
148
+ }
149
+
150
+ render() {
151
+ let originPOIOptions = this.props.originPOIOptions
152
+ if (originPOIOptions) {
153
+ if (originPOIOptions.titleColor) {
154
+ originPOIOptions.titleColor = processColor(originPOIOptions.titleColor)
155
+ }
156
+ if (originPOIOptions.icon) {
157
+ let uri = Image.resolveAssetSource(originPOIOptions.icon.uri) || {uri: originPOIOptions.icon.uri};
158
+ originPOIOptions.icon = {uri: uri.uri}
159
+ }
160
+ }
161
+
162
+ let destinationPOIOptions = this.props.destinationPOIOptions
163
+ if (destinationPOIOptions) {
164
+ if (destinationPOIOptions.titleColor) {
165
+ destinationPOIOptions.titleColor = processColor(destinationPOIOptions.titleColor)
166
+ }
167
+ if (destinationPOIOptions.icon) {
168
+ let uri = Image.resolveAssetSource(destinationPOIOptions.icon.uri) || {uri: destinationPOIOptions.icon.uri};
169
+ destinationPOIOptions.icon = {uri: uri.uri}
170
+ }
171
+ }
172
+
173
+ return <RMFDirectionsRenderer
174
+ {...this.props}
175
+ originPOIOptions={originPOIOptions}
176
+ destinationPOIOptions={destinationPOIOptions}
177
+ ref={this._ref}
178
+ onPress={this._onPress}
179
+ />;
180
+ }
181
+
182
+ _ref(ref) {
183
+ this.renderer = ref;
184
+ }
185
+
186
+ _onPress(event) {
187
+ event.stopPropagation();
188
+ if (this.props.onPress) {
189
+ this.props.onPress(event);
190
+ }
191
+ }
192
+
193
+ _runCommand(name, args) {
194
+ switch (Platform.OS) {
195
+ case 'android': {
196
+ if (!UIManager || typeof UIManager.dispatchViewManagerCommand !== 'function') {
197
+ return;
198
+ }
199
+
200
+ const commandId = this._uiManagerCommand(name);
201
+ if (commandId == null) {
202
+ return;
203
+ }
204
+
205
+ UIManager.dispatchViewManagerCommand(this._getHandle(), commandId, args);
206
+ break;
207
+ }
208
+
209
+ case 'ios':
210
+ this._mapManagerCommand(name)(this._getHandle(), ...args);
211
+ break;
212
+
213
+ default:
214
+ break;
215
+ }
216
+ }
217
+
218
+ _getHandle() {
219
+ return findNodeHandle(this.renderer);
220
+ }
221
+
222
+ _uiManagerCommand(name) {
223
+ const uiManager = UIManager || NativeModules.UIManager;
224
+ const componentName = "RMFDirectionsRenderer";
225
+
226
+ if (!uiManager) {
227
+ return null;
228
+ }
229
+
230
+ if (!uiManager.getViewManagerConfig) {
231
+ // RN < 0.58
232
+ const legacyConfig = uiManager[componentName];
233
+ return legacyConfig && legacyConfig.Commands ? legacyConfig.Commands[name] : null;
234
+ }
235
+
236
+ // RN >= 0.58
237
+ const config = uiManager.getViewManagerConfig(componentName);
238
+ return config && config.Commands ? config.Commands[name] : null;
239
+ }
240
+
241
+ _mapManagerCommand(name) {
242
+ return NativeModules[`RMFDirectionsRenderer`][name];
243
+ }
244
+ }
245
+
246
+ MFDirectionsRenderer.propTypes = propTypes;
247
+
248
+ var RMFDirectionsRenderer = requireNativeComponent(`RMFDirectionsRenderer`, MFDirectionsRenderer);
249
+
250
+ export { MFDirectionsRenderer }