react-native-map4d-map-dtqg 0.1.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -0
  3. package/android/build.gradle +60 -0
  4. package/android/src/main/AndroidManifest.xml +4 -0
  5. package/android/src/main/java/com/reactnativemap4dmap/ImageUtils.java +87 -0
  6. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapModule.java +298 -0
  7. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapPackage.java +35 -0
  8. package/android/src/main/java/com/reactnativemap4dmap/Map4dMapViewManager.java +31 -0
  9. package/android/src/main/java/com/reactnativemap4dmap/RMFBuilding.java +167 -0
  10. package/android/src/main/java/com/reactnativemap4dmap/RMFBuildingManager.java +121 -0
  11. package/android/src/main/java/com/reactnativemap4dmap/RMFCircle.java +105 -0
  12. package/android/src/main/java/com/reactnativemap4dmap/RMFCircleManager.java +122 -0
  13. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRenderer.java +502 -0
  14. package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRendererManager.java +143 -0
  15. package/android/src/main/java/com/reactnativemap4dmap/RMFFeature.java +18 -0
  16. package/android/src/main/java/com/reactnativemap4dmap/RMFMapView.java +1172 -0
  17. package/android/src/main/java/com/reactnativemap4dmap/RMFMapViewManager.java +226 -0
  18. package/android/src/main/java/com/reactnativemap4dmap/RMFMarker.java +412 -0
  19. package/android/src/main/java/com/reactnativemap4dmap/RMFMarkerManager.java +212 -0
  20. package/android/src/main/java/com/reactnativemap4dmap/RMFPOI.java +222 -0
  21. package/android/src/main/java/com/reactnativemap4dmap/RMFPOIManager.java +119 -0
  22. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygon.java +173 -0
  23. package/android/src/main/java/com/reactnativemap4dmap/RMFPolygonManager.java +148 -0
  24. package/android/src/main/java/com/reactnativemap4dmap/RMFPolyline.java +146 -0
  25. package/android/src/main/java/com/reactnativemap4dmap/RMFPolylineManager.java +138 -0
  26. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlay.java +95 -0
  27. package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlayManager.java +65 -0
  28. package/android/src/main/java/com/reactnativemap4dmap/SizeReportingShadowNode.java +31 -0
  29. package/android/src/main/java/com/reactnativemap4dmap/ViewAttacherGroup.java +31 -0
  30. package/android/src/main/java/com/reactnativemap4dmap/ViewChangesTracker.java +70 -0
  31. package/android/src/main/java/vn/map4d/map/annotations/RMFBitmapDescriptor.java +9 -0
  32. package/ios/Map4dMap.h +7 -0
  33. package/ios/Map4dMap.m +14 -0
  34. package/ios/Map4dMap.xcodeproj/project.pbxproj +282 -0
  35. package/ios/Map4dMapViewManager.m +34 -0
  36. package/ios/RCTConvert+Map4dMap.h +33 -0
  37. package/ios/RCTConvert+Map4dMap.m +112 -0
  38. package/ios/RMFCircle.h +37 -0
  39. package/ios/RMFCircle.m +100 -0
  40. package/ios/RMFCircleManager.h +18 -0
  41. package/ios/RMFCircleManager.m +155 -0
  42. package/ios/RMFCircleMap4d.h +23 -0
  43. package/ios/RMFCircleMap4d.m +13 -0
  44. package/ios/RMFCoordinate.h +22 -0
  45. package/ios/RMFCoordinate.m +13 -0
  46. package/ios/RMFDirectionsMarkerOptions.h +24 -0
  47. package/ios/RMFDirectionsMarkerOptions.m +23 -0
  48. package/ios/RMFDirectionsRenderer.h +47 -0
  49. package/ios/RMFDirectionsRenderer.m +182 -0
  50. package/ios/RMFDirectionsRendererManager.h +17 -0
  51. package/ios/RMFDirectionsRendererManager.m +84 -0
  52. package/ios/RMFDirectionsRendererMap4d.h +21 -0
  53. package/ios/RMFDirectionsRendererMap4d.m +12 -0
  54. package/ios/RMFDummyView.h +7 -0
  55. package/ios/RMFDummyView.m +13 -0
  56. package/ios/RMFEventResponse.h +39 -0
  57. package/ios/RMFEventResponse.m +98 -0
  58. package/ios/RMFIcon.h +24 -0
  59. package/ios/RMFIcon.m +35 -0
  60. package/ios/RMFMapView.h +84 -0
  61. package/ios/RMFMapView.m +376 -0
  62. package/ios/RMFMapViewManager.h +17 -0
  63. package/ios/RMFMapViewManager.m +493 -0
  64. package/ios/RMFMarker.h +57 -0
  65. package/ios/RMFMarker.m +267 -0
  66. package/ios/RMFMarkerManager.h +17 -0
  67. package/ios/RMFMarkerManager.m +156 -0
  68. package/ios/RMFMarkerMap4d.h +19 -0
  69. package/ios/RMFMarkerMap4d.m +13 -0
  70. package/ios/RMFPOI.h +38 -0
  71. package/ios/RMFPOI.m +123 -0
  72. package/ios/RMFPOIManager.h +18 -0
  73. package/ios/RMFPOIManager.m +168 -0
  74. package/ios/RMFPOIMap4d.h +22 -0
  75. package/ios/RMFPOIMap4d.m +12 -0
  76. package/ios/RMFPolygon.h +41 -0
  77. package/ios/RMFPolygon.m +106 -0
  78. package/ios/RMFPolygonManager.h +18 -0
  79. package/ios/RMFPolygonManager.m +141 -0
  80. package/ios/RMFPolygonMap4d.h +23 -0
  81. package/ios/RMFPolygonMap4d.m +15 -0
  82. package/ios/RMFPolyline.h +38 -0
  83. package/ios/RMFPolyline.m +101 -0
  84. package/ios/RMFPolylineManager.h +18 -0
  85. package/ios/RMFPolylineManager.m +139 -0
  86. package/ios/RMFPolylineMap4d.h +22 -0
  87. package/ios/RMFPolylineMap4d.m +15 -0
  88. package/ios/building/RMFBuilding.h +41 -0
  89. package/ios/building/RMFBuilding.m +104 -0
  90. package/ios/building/RMFBuildingManager.h +19 -0
  91. package/ios/building/RMFBuildingManager.m +133 -0
  92. package/ios/building/RMFBuildingMap4d.h +23 -0
  93. package/ios/building/RMFBuildingMap4d.m +15 -0
  94. package/ios/overlays/RMFTileOverlay.h +36 -0
  95. package/ios/overlays/RMFTileOverlay.m +64 -0
  96. package/ios/overlays/RMFTileOverlayManager.h +17 -0
  97. package/ios/overlays/RMFTileOverlayManager.m +27 -0
  98. package/lib/commonjs/components/MFBuilding.js +192 -0
  99. package/lib/commonjs/components/MFBuilding.js.map +1 -0
  100. package/lib/commonjs/components/MFCircle.js +181 -0
  101. package/lib/commonjs/components/MFCircle.js.map +1 -0
  102. package/lib/commonjs/components/MFDirectionsRenderer.js +240 -0
  103. package/lib/commonjs/components/MFDirectionsRenderer.js.map +1 -0
  104. package/lib/commonjs/components/MFMapView.js +375 -0
  105. package/lib/commonjs/components/MFMapView.js.map +1 -0
  106. package/lib/commonjs/components/MFMarker.js +255 -0
  107. package/lib/commonjs/components/MFMarker.js.map +1 -0
  108. package/lib/commonjs/components/MFPOI.js +204 -0
  109. package/lib/commonjs/components/MFPOI.js.map +1 -0
  110. package/lib/commonjs/components/MFPolygon.js +183 -0
  111. package/lib/commonjs/components/MFPolygon.js.map +1 -0
  112. package/lib/commonjs/components/MFPolyline.js +173 -0
  113. package/lib/commonjs/components/MFPolyline.js.map +1 -0
  114. package/lib/commonjs/components/MFTileOverlay.js +51 -0
  115. package/lib/commonjs/components/MFTileOverlay.js.map +1 -0
  116. package/lib/commonjs/components/Map4dMapView.js +19 -0
  117. package/lib/commonjs/components/Map4dMapView.js.map +1 -0
  118. package/lib/commonjs/index.js +78 -0
  119. package/lib/commonjs/index.js.map +1 -0
  120. package/lib/module/components/MFBuilding.js +178 -0
  121. package/lib/module/components/MFBuilding.js.map +1 -0
  122. package/lib/module/components/MFCircle.js +167 -0
  123. package/lib/module/components/MFCircle.js.map +1 -0
  124. package/lib/module/components/MFDirectionsRenderer.js +226 -0
  125. package/lib/module/components/MFDirectionsRenderer.js.map +1 -0
  126. package/lib/module/components/MFMapView.js +361 -0
  127. package/lib/module/components/MFMapView.js.map +1 -0
  128. package/lib/module/components/MFMarker.js +240 -0
  129. package/lib/module/components/MFMarker.js.map +1 -0
  130. package/lib/module/components/MFPOI.js +190 -0
  131. package/lib/module/components/MFPOI.js.map +1 -0
  132. package/lib/module/components/MFPolygon.js +169 -0
  133. package/lib/module/components/MFPolygon.js.map +1 -0
  134. package/lib/module/components/MFPolyline.js +159 -0
  135. package/lib/module/components/MFPolyline.js.map +1 -0
  136. package/lib/module/components/MFTileOverlay.js +38 -0
  137. package/lib/module/components/MFTileOverlay.js.map +1 -0
  138. package/lib/module/components/Map4dMapView.js +10 -0
  139. package/lib/module/components/Map4dMapView.js.map +1 -0
  140. package/lib/module/index.js +11 -0
  141. package/lib/module/index.js.map +1 -0
  142. package/lib/typescript/components/Map4dMapView.d.ts +7 -0
  143. package/package.json +152 -0
  144. package/react-native-map4d-map.podspec +20 -0
  145. package/src/components/MFBuilding.js +188 -0
  146. package/src/components/MFCircle.js +173 -0
  147. package/src/components/MFDirectionsRenderer.js +237 -0
  148. package/src/components/MFMapView.js +374 -0
  149. package/src/components/MFMarker.js +246 -0
  150. package/src/components/MFPOI.js +184 -0
  151. package/src/components/MFPolygon.js +186 -0
  152. package/src/components/MFPolyline.js +172 -0
  153. package/src/components/MFTileOverlay.js +45 -0
  154. package/src/components/Map4dMapView.tsx +27 -0
  155. package/src/index.js +21 -0
@@ -0,0 +1,184 @@
1
+ import PropTypes from 'prop-types';
2
+ import React from 'react';
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
+ // if ViewPropTypes is not defined fall back to View.propType (to support RN < 0.44)
14
+ const viewPropTypes = ViewPropTypes || View.propTypes;
15
+
16
+ const propTypes = {
17
+ ...viewPropTypes,
18
+
19
+ /**
20
+ * The coordinate for the POI.
21
+ */
22
+ coordinate: PropTypes.shape({
23
+ latitude: PropTypes.number.isRequired,
24
+ longitude: PropTypes.number.isRequired,
25
+ }).isRequired,
26
+
27
+ /**
28
+ * The title of the POI.
29
+ */
30
+ title: PropTypes.string,
31
+
32
+ /**
33
+ * The color of the title.
34
+ */
35
+ titleColor: ColorPropType,
36
+
37
+ /**
38
+ * The subtile of the POI.
39
+ */
40
+ subtitle: PropTypes.string,
41
+
42
+ /**
43
+ * The type of POI
44
+ */
45
+ //poiType: PropTypes.oneOf(['cafe', 'atm', 'bank']),
46
+ poiType: PropTypes.string,
47
+
48
+ /**
49
+ * POI icon to render.
50
+ */
51
+ icon: PropTypes.shape({
52
+ uri: PropTypes.any.isRequired
53
+ }),
54
+
55
+ /**
56
+ * zIndex
57
+ */
58
+ zIndex: PropTypes.number,
59
+
60
+ /**
61
+ * visible
62
+ */
63
+ //TODO
64
+ // visible: PropTypes.bool,
65
+
66
+ /**
67
+ * userData
68
+ */
69
+ userData:PropTypes.object,
70
+
71
+ /**
72
+ * Callback that is called when the user presses on the POI
73
+ */
74
+ onPress: PropTypes.func,
75
+ };
76
+
77
+ class MFPOI extends React.Component {
78
+ constructor(props) {
79
+ super(props);
80
+ this._onPress = this._onPress.bind(this)
81
+ this._ref = this._ref.bind(this)
82
+ }
83
+
84
+ _onPress(event) {
85
+ event.stopPropagation();
86
+ if (this.props.onPress) {
87
+ this.props.onPress(event);
88
+ }
89
+ }
90
+
91
+ _ref(ref) {
92
+ this.poi = ref;
93
+ }
94
+
95
+ setCoordinate(coordinate) {
96
+ this._runCommand("setCoordinate", [coordinate])
97
+ }
98
+ setTitle(title) {
99
+ this._runCommand("setTitle", [title])
100
+ }
101
+ setTitleColor(color) {
102
+ this._runCommand("setTitleColor", [processColor(color)])
103
+ }
104
+ setSubTitle(subtitle) {
105
+ this._runCommand("setSubTitle", [subtitle])
106
+ }
107
+ setPoiType(type) {
108
+ this._runCommand("setPoiType", [type])
109
+ }
110
+ setIcon(icon) {
111
+ let uri = Image.resolveAssetSource(icon.uri) || { uri: icon.uri }
112
+ this._runCommand("setIcon", [ { uri: uri.uri } ])
113
+ }
114
+ setZIndex(zIndex) {
115
+ this._runCommand("setZIndex", [zIndex])
116
+ }
117
+ // setVisible(visible) {
118
+ // this._runCommand("setVisible", [visible])
119
+ // }
120
+ setUserData(userData) {
121
+ this._runCommand("setUserData", [userData])
122
+ }
123
+
124
+ _getHandle() {
125
+ return findNodeHandle(this.poi);
126
+ }
127
+
128
+
129
+ _runCommand(name, args) {
130
+ switch (Platform.OS) {
131
+ case 'android':
132
+ NativeModules.UIManager.dispatchViewManagerCommand(
133
+ this._getHandle(),
134
+ this._uiManagerCommand(name),
135
+ args
136
+ );
137
+ break;
138
+
139
+ case 'ios':
140
+ this._mapManagerCommand(name)(this._getHandle(), ...args);
141
+ break;
142
+
143
+ default:
144
+ break;
145
+ }
146
+ }
147
+
148
+ _uiManagerCommand(name) {
149
+ const UIManager = NativeModules.UIManager;
150
+ const componentName = "RMFPOI";
151
+
152
+ if (!UIManager.getViewManagerConfig) {
153
+ // RN < 0.58
154
+ return UIManager[componentName].Commands[name];
155
+ }
156
+
157
+ // RN >= 0.58
158
+ return UIManager.getViewManagerConfig(componentName).Commands[name];
159
+ }
160
+
161
+ _mapManagerCommand(name) {
162
+ return NativeModules[`RMFPOI`][name];
163
+ }
164
+
165
+ render() {
166
+ let icon = {}
167
+ if (this.props.icon) {
168
+ let uri = Image.resolveAssetSource(this.props.icon.uri) || {uri: this.props.icon.uri}
169
+ icon = { uri: uri.uri }
170
+ }
171
+ return <RMFPOI
172
+ {...this.props}
173
+ icon={icon}
174
+ ref={this._ref}
175
+ onPress={this._onPress}
176
+ />;
177
+ }
178
+ }
179
+
180
+ MFPOI.propTypes = propTypes;
181
+
182
+ var RMFPOI = requireNativeComponent(`RMFPOI`, MFPOI);
183
+
184
+ export {MFPOI}
@@ -0,0 +1,186 @@
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
+ NativeModules,
8
+ findNodeHandle,
9
+ processColor
10
+ } from 'react-native';
11
+
12
+ // if ViewPropTypes is not defined fall back to View.propType (to support RN < 0.44)
13
+ const viewPropTypes = ViewPropTypes || View.propTypes;
14
+
15
+ const propTypes = {
16
+ ...viewPropTypes,
17
+
18
+ /**
19
+ * An array of coordinates to describe the polygon
20
+ */
21
+ coordinates: PropTypes.arrayOf(
22
+ PropTypes.shape({
23
+ /**
24
+ * Latitude/Longitude coordinates
25
+ */
26
+ latitude: PropTypes.number.isRequired,
27
+ longitude: PropTypes.number.isRequired,
28
+ })
29
+ ),
30
+
31
+ /**
32
+ * An array of array of coordinates to describe the polygon holes
33
+ */
34
+ holes: PropTypes.arrayOf(
35
+ PropTypes.arrayOf(
36
+ PropTypes.shape({
37
+ /**
38
+ * Latitude/Longitude coordinates
39
+ */
40
+ latitude: PropTypes.number.isRequired,
41
+ longitude: PropTypes.number.isRequired,
42
+ })
43
+ )
44
+ ),
45
+
46
+ /**
47
+ * The color to use for the polygon.
48
+ */
49
+ fillColor: ColorPropType,
50
+
51
+ /**
52
+ * The color to use for the polygon stroke.
53
+ */
54
+ strokeColor: ColorPropType,
55
+
56
+ /**
57
+ * The stroke width to use for the polygon.
58
+ */
59
+ strokeWidth: PropTypes.number,
60
+
61
+ /**
62
+ * zIndex
63
+ */
64
+ zIndex: PropTypes.number,
65
+
66
+ /**
67
+ * visible
68
+ */
69
+ visible: PropTypes.bool,
70
+
71
+ /**
72
+ * userData
73
+ */
74
+ userData:PropTypes.object,
75
+
76
+ /**
77
+ * Callback that is called when the user presses on the polygon
78
+ */
79
+ onPress: PropTypes.func,
80
+ };
81
+
82
+
83
+ class MFPolygon extends React.Component {
84
+ constructor(props) {
85
+ super(props);
86
+ this._onPress = this._onPress.bind(this)
87
+ this._ref = this._ref.bind(this)
88
+ }
89
+
90
+ _onPress(event) {
91
+ event.stopPropagation();
92
+ if (this.props.onPress) {
93
+ this.props.onPress(event);
94
+ }
95
+ }
96
+
97
+ _ref(ref) {
98
+ this.polygon = ref;
99
+ }
100
+
101
+ setCoordinates(coordinates) {
102
+ this._runCommand("setCoordinates", [coordinates])
103
+ }
104
+
105
+ setHoles(holes) {
106
+ this._runCommand("setHoles", [holes])
107
+ }
108
+
109
+ setFillColor(color) {
110
+ this._runCommand("setFillColor", [processColor(color)])
111
+ }
112
+
113
+ setStrokeColor(color) {
114
+ this._runCommand("setStrokeColor", [processColor(color)])
115
+ }
116
+
117
+ setStrokeWidth(width) {
118
+ this._runCommand("setStrokeWidth", [width])
119
+ }
120
+
121
+ setVisible(visible) {
122
+ this._runCommand("setVisible", [visible])
123
+ }
124
+
125
+ setZIndex(zIndex) {
126
+ this._runCommand("setZIndex", [zIndex])
127
+ }
128
+
129
+ setUserData(userData) {
130
+ this._runCommand("setUserData", [userData])
131
+ }
132
+
133
+ _getHandle() {
134
+ return findNodeHandle(this.polygon);
135
+ }
136
+
137
+ _runCommand(name, args) {
138
+ switch (Platform.OS) {
139
+ case 'android':
140
+ NativeModules.UIManager.dispatchViewManagerCommand(
141
+ this._getHandle(),
142
+ this._uiManagerCommand(name),
143
+ args
144
+ );
145
+ break;
146
+
147
+ case 'ios':
148
+ this._mapManagerCommand(name)(this._getHandle(), ...args);
149
+ break;
150
+
151
+ default:
152
+ break;
153
+ }
154
+ }
155
+
156
+ _uiManagerCommand(name) {
157
+ const UIManager = NativeModules.UIManager;
158
+ const componentName = "RMFPolygon";
159
+
160
+ if (!UIManager.getViewManagerConfig) {
161
+ // RN < 0.58
162
+ return UIManager[componentName].Commands[name];
163
+ }
164
+
165
+ // RN >= 0.58
166
+ return UIManager.getViewManagerConfig(componentName).Commands[name];
167
+ }
168
+
169
+ _mapManagerCommand(name) {
170
+ return NativeModules[`RMFPolygon`][name];
171
+ }
172
+
173
+ render() {
174
+ return <RMFPolygon
175
+ {...this.props}
176
+ ref={this._ref}
177
+ onPress={this._onPress}
178
+ />;
179
+ }
180
+ }
181
+
182
+ MFPolygon.propTypes = propTypes;
183
+
184
+ var RMFPolygon = requireNativeComponent(`RMFPolygon`, MFPolygon);
185
+
186
+ export { MFPolygon }
@@ -0,0 +1,172 @@
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
+ NativeModules,
8
+ findNodeHandle,
9
+ processColor
10
+ } from 'react-native';
11
+
12
+ // if ViewPropTypes is not defined fall back to View.propType (to support RN < 0.44)
13
+ const viewPropTypes = ViewPropTypes || View.propTypes;
14
+
15
+ const propTypes = {
16
+ ...viewPropTypes,
17
+
18
+ /**
19
+ * An array of coordinates to describe the polyline
20
+ */
21
+ coordinates: PropTypes.arrayOf(
22
+ PropTypes.shape({
23
+ /**
24
+ * Latitude/Longitude coordinates
25
+ */
26
+ latitude: PropTypes.number.isRequired,
27
+ longitude: PropTypes.number.isRequired,
28
+ })
29
+ ),
30
+
31
+ /**
32
+ * The color to use for the path.
33
+ */
34
+ color: ColorPropType,
35
+
36
+ /**
37
+ * The stroke width to use for the path.
38
+ */
39
+ width: PropTypes.number,
40
+
41
+ /**
42
+ * The default style is `solid`.
43
+ */
44
+ lineStyle: PropTypes.oneOf(['solid', 'dotted']),
45
+
46
+ /**
47
+ * zIndex
48
+ */
49
+ zIndex: PropTypes.number,
50
+
51
+ /**
52
+ * visible
53
+ */
54
+ visible: PropTypes.bool,
55
+
56
+ /**
57
+ * userData
58
+ */
59
+ userData:PropTypes.object,
60
+
61
+ /**
62
+ * Callback that is called when the user presses on the polyline
63
+ */
64
+ onPress: PropTypes.func,
65
+ };
66
+
67
+
68
+ class MFPolyline extends React.Component {
69
+ constructor(props) {
70
+ super(props);
71
+ this._onPress = this._onPress.bind(this)
72
+ this._ref = this._ref.bind(this)
73
+ }
74
+
75
+ _onPress(event) {
76
+ event.stopPropagation();
77
+ if (this.props.onPress) {
78
+ this.props.onPress(event);
79
+ }
80
+ }
81
+
82
+ _ref(ref) {
83
+ this.polyline = ref;
84
+ }
85
+
86
+ // TODO - bug
87
+ setCoordinates(coordinates) {
88
+ this._runCommand("setCoordinates", [coordinates])
89
+ }
90
+
91
+ setWidth(width) {
92
+ this._runCommand("setWidth", [width])
93
+ }
94
+
95
+ setColor(color) {
96
+ this._runCommand("setColor", [processColor(color)])
97
+ }
98
+
99
+ setVisible(visible) {
100
+ this._runCommand("setVisible", [visible])
101
+ }
102
+
103
+ setTouchable(touchable) {
104
+ this._runCommand("setTouchable", [touchable])
105
+ }
106
+
107
+ setZIndex(zIndex) {
108
+ this._runCommand("setZIndex", [zIndex])
109
+ }
110
+
111
+ setLineStyle(style) {
112
+ this._runCommand("setLineStyle", [style])
113
+ }
114
+
115
+ setUserData(userData) {
116
+ this._runCommand("setUserData", [userData])
117
+ }
118
+
119
+ _getHandle() {
120
+ return findNodeHandle(this.polyline);
121
+ }
122
+
123
+ _runCommand(name, args) {
124
+ switch (Platform.OS) {
125
+ case 'android':
126
+ NativeModules.UIManager.dispatchViewManagerCommand(
127
+ this._getHandle(),
128
+ this._uiManagerCommand(name),
129
+ args
130
+ );
131
+ break;
132
+
133
+ case 'ios':
134
+ this._mapManagerCommand(name)(this._getHandle(), ...args);
135
+ break;
136
+
137
+ default:
138
+ break;
139
+ }
140
+ }
141
+
142
+ _uiManagerCommand(name) {
143
+ const UIManager = NativeModules.UIManager;
144
+ const componentName = "RMFPolyline";
145
+
146
+ if (!UIManager.getViewManagerConfig) {
147
+ // RN < 0.58
148
+ return UIManager[componentName].Commands[name];
149
+ }
150
+
151
+ // RN >= 0.58
152
+ return UIManager.getViewManagerConfig(componentName).Commands[name];
153
+ }
154
+
155
+ _mapManagerCommand(name) {
156
+ return NativeModules[`RMFPolyline`][name];
157
+ }
158
+
159
+ render() {
160
+ return <RMFPolyline
161
+ {...this.props}
162
+ ref={this._ref}
163
+ onPress={this._onPress}
164
+ />;
165
+ }
166
+ }
167
+
168
+ MFPolyline.propTypes = propTypes;
169
+
170
+ var RMFPolyline = requireNativeComponent(`RMFPolyline`, MFPolyline);
171
+
172
+ export { MFPolyline }
@@ -0,0 +1,45 @@
1
+ import PropTypes from "prop-types";
2
+ import React from 'react';
3
+ import {ViewPropTypes} from 'deprecated-react-native-prop-types';
4
+ import {
5
+ requireNativeComponent,
6
+ View,
7
+ } from 'react-native';
8
+
9
+ // if ViewPropTypes is not defined fall back to View.propType (to support RN < 0.44)
10
+ const viewPropTypes = ViewPropTypes || View.propTypes;
11
+ const propTypes = {
12
+ ...viewPropTypes,
13
+
14
+ /**
15
+ * The url template of the tile server. The patterns {x} {y} {z} will be replaced at runtime
16
+ * For example, https://tile.openstreetmap.de/{z}/{x}/{y}.png
17
+ */
18
+ urlTemplate: PropTypes.string.isRequired,
19
+
20
+ /**
21
+ * visible
22
+ */
23
+ visible: PropTypes.bool,
24
+
25
+ /**
26
+ * The order in which this tile overlay is drawn with respect to other overlays. An overlay
27
+ * with a larger z-index is drawn over overlays with smaller z-indices. The order of overlays
28
+ * with the same z-index is arbitrary. The default zIndex is 0.
29
+ */
30
+ zIndex: PropTypes.number,
31
+ };
32
+
33
+ class MFTileOverlay extends React.Component {
34
+ render() {
35
+ return <RMFTileOverlay
36
+ {...this.props}
37
+ />;
38
+ }
39
+ }
40
+
41
+ MFTileOverlay.propTypes = propTypes;
42
+
43
+ var RMFTileOverlay = requireNativeComponent(`RMFTileOverlay`, MFTileOverlay);
44
+
45
+ export { MFTileOverlay }
@@ -0,0 +1,27 @@
1
+ import {
2
+ requireNativeComponent,
3
+ UIManager,
4
+ Platform,
5
+ ViewStyle,
6
+ } from 'react-native';
7
+
8
+ const LINKING_ERROR =
9
+ `The package 'react-native-map4d-map' doesn't seem to be linked. Make sure: \n\n` +
10
+ Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
11
+ '- You rebuilt the app after installing the package\n' +
12
+ '- You are not using Expo managed workflow\n';
13
+
14
+ type Map4dMapProps = {
15
+ color: string;
16
+ style: ViewStyle;
17
+ };
18
+
19
+ const ComponentName = 'Map4dMapView';
20
+
21
+ export const Map4dMapView =
22
+ UIManager.getViewManagerConfig(ComponentName) != null
23
+ ? requireNativeComponent<Map4dMapProps>(ComponentName)
24
+ : () => {
25
+ throw new Error(LINKING_ERROR);
26
+ };
27
+
package/src/index.js ADDED
@@ -0,0 +1,21 @@
1
+ import {MFMapView} from './components/MFMapView'
2
+ import {MFMarker} from './components/MFMarker'
3
+ import {MFCircle} from './components/MFCircle'
4
+ import {MFPolyline} from './components/MFPolyline'
5
+ import {MFPolygon} from './components/MFPolygon'
6
+ import {MFPOI} from './components/MFPOI'
7
+ import {MFDirectionsRenderer} from './components/MFDirectionsRenderer'
8
+ import {MFTileOverlay} from './components/MFTileOverlay'
9
+ import {MFBuilding} from './components/MFBuilding'
10
+
11
+ export {
12
+ MFMapView,
13
+ MFMarker,
14
+ MFCircle,
15
+ MFPolyline,
16
+ MFPolygon,
17
+ MFPOI,
18
+ MFDirectionsRenderer,
19
+ MFTileOverlay,
20
+ MFBuilding,
21
+ };