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.
- package/LICENSE +21 -21
- package/README.md +133 -133
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +60 -60
- package/android/src/main/AndroidManifest.xml +4 -4
- package/android/src/main/java/com/reactnativemap4dmap/ImageUtils.java +87 -87
- package/android/src/main/java/com/reactnativemap4dmap/Map4dMapModule.java +298 -298
- package/android/src/main/java/com/reactnativemap4dmap/Map4dMapPackage.java +35 -35
- package/android/src/main/java/com/reactnativemap4dmap/Map4dMapViewManager.java +31 -31
- package/android/src/main/java/com/reactnativemap4dmap/RMFBuilding.java +167 -167
- package/android/src/main/java/com/reactnativemap4dmap/RMFBuildingManager.java +121 -121
- package/android/src/main/java/com/reactnativemap4dmap/RMFCircle.java +105 -105
- package/android/src/main/java/com/reactnativemap4dmap/RMFCircleManager.java +121 -121
- package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRenderer.java +502 -502
- package/android/src/main/java/com/reactnativemap4dmap/RMFDirectionsRendererManager.java +143 -143
- package/android/src/main/java/com/reactnativemap4dmap/RMFFeature.java +17 -17
- package/android/src/main/java/com/reactnativemap4dmap/RMFMapView.java +1172 -1172
- package/android/src/main/java/com/reactnativemap4dmap/RMFMapViewManager.java +231 -231
- package/android/src/main/java/com/reactnativemap4dmap/RMFMarker.java +412 -412
- package/android/src/main/java/com/reactnativemap4dmap/RMFMarkerManager.java +211 -211
- package/android/src/main/java/com/reactnativemap4dmap/RMFPOI.java +222 -222
- package/android/src/main/java/com/reactnativemap4dmap/RMFPOIManager.java +119 -119
- package/android/src/main/java/com/reactnativemap4dmap/RMFPolygon.java +172 -172
- package/android/src/main/java/com/reactnativemap4dmap/RMFPolygonManager.java +147 -147
- package/android/src/main/java/com/reactnativemap4dmap/RMFPolyline.java +146 -146
- package/android/src/main/java/com/reactnativemap4dmap/RMFPolylineManager.java +137 -137
- package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlay.java +95 -95
- package/android/src/main/java/com/reactnativemap4dmap/RMFTileOverlayManager.java +64 -64
- package/android/src/main/java/com/reactnativemap4dmap/SizeReportingShadowNode.java +31 -31
- package/android/src/main/java/com/reactnativemap4dmap/ViewAttacherGroup.java +31 -31
- package/android/src/main/java/com/reactnativemap4dmap/ViewChangesTracker.java +70 -70
- package/android/src/main/java/vn/map4d/map/annotations/RMFBitmapDescriptor.java +9 -9
- package/ios/Map4dMap.h +7 -7
- package/ios/Map4dMap.m +14 -14
- package/ios/Map4dMapViewManager.m +34 -34
- package/ios/RCTConvert+Map4dMap.h +33 -33
- package/ios/RCTConvert+Map4dMap.m +112 -112
- package/ios/RMFCircle.h +37 -37
- package/ios/RMFCircle.m +100 -100
- package/ios/RMFCircleManager.h +18 -18
- package/ios/RMFCircleManager.m +155 -155
- package/ios/RMFCircleMap4d.h +23 -23
- package/ios/RMFCircleMap4d.m +13 -13
- package/ios/RMFCoordinate.h +22 -22
- package/ios/RMFCoordinate.m +13 -13
- package/ios/RMFDirectionsMarkerOptions.h +24 -24
- package/ios/RMFDirectionsMarkerOptions.m +23 -23
- package/ios/RMFDirectionsRenderer.h +47 -47
- package/ios/RMFDirectionsRenderer.m +182 -182
- package/ios/RMFDirectionsRendererManager.h +17 -17
- package/ios/RMFDirectionsRendererManager.m +84 -84
- package/ios/RMFDirectionsRendererMap4d.h +21 -21
- package/ios/RMFDirectionsRendererMap4d.m +12 -12
- package/ios/RMFDummyView.h +6 -6
- package/ios/RMFDummyView.m +12 -12
- package/ios/RMFEventResponse.h +39 -39
- package/ios/RMFEventResponse.m +98 -98
- package/ios/RMFIcon.h +24 -24
- package/ios/RMFIcon.m +35 -35
- package/ios/RMFMapView.h +84 -84
- package/ios/RMFMapView.m +376 -376
- package/ios/RMFMapViewManager.h +17 -17
- package/ios/RMFMapViewManager.m +509 -509
- package/ios/RMFMarker.h +57 -57
- package/ios/RMFMarker.m +267 -267
- package/ios/RMFMarkerManager.h +17 -17
- package/ios/RMFMarkerManager.m +156 -156
- package/ios/RMFMarkerMap4d.h +19 -19
- package/ios/RMFMarkerMap4d.m +13 -13
- package/ios/RMFPOI.h +38 -38
- package/ios/RMFPOI.m +123 -123
- package/ios/RMFPOIManager.h +18 -18
- package/ios/RMFPOIManager.m +168 -168
- package/ios/RMFPOIMap4d.h +22 -22
- package/ios/RMFPOIMap4d.m +12 -12
- package/ios/RMFPolygon.h +41 -41
- package/ios/RMFPolygon.m +106 -106
- package/ios/RMFPolygonManager.h +18 -18
- package/ios/RMFPolygonManager.m +141 -141
- package/ios/RMFPolygonMap4d.h +23 -23
- package/ios/RMFPolygonMap4d.m +15 -15
- package/ios/RMFPolyline.h +38 -38
- package/ios/RMFPolyline.m +101 -101
- package/ios/RMFPolylineManager.h +18 -18
- package/ios/RMFPolylineManager.m +139 -139
- package/ios/RMFPolylineMap4d.h +22 -22
- package/ios/RMFPolylineMap4d.m +15 -15
- package/ios/building/RMFBuilding.h +41 -41
- package/ios/building/RMFBuilding.m +104 -104
- package/ios/building/RMFBuildingManager.h +19 -19
- package/ios/building/RMFBuildingManager.m +133 -133
- package/ios/building/RMFBuildingMap4d.h +23 -23
- package/ios/building/RMFBuildingMap4d.m +15 -15
- package/ios/overlays/RMFTileOverlay.h +36 -36
- package/ios/overlays/RMFTileOverlay.m +64 -64
- package/ios/overlays/RMFTileOverlayManager.h +17 -17
- package/ios/overlays/RMFTileOverlayManager.m +27 -27
- package/lib/commonjs/components/MFBanDoSo.js.map +1 -1
- package/lib/commonjs/components/MFBuilding.js +50 -32
- package/lib/commonjs/components/MFBuilding.js.map +1 -1
- package/lib/commonjs/components/MFCircle.js +44 -26
- package/lib/commonjs/components/MFCircle.js.map +1 -1
- package/lib/commonjs/components/MFDirectionsRenderer.js +56 -38
- package/lib/commonjs/components/MFDirectionsRenderer.js.map +1 -1
- package/lib/commonjs/components/MFMapView.js +91 -74
- package/lib/commonjs/components/MFMapView.js.map +1 -1
- package/lib/commonjs/components/MFMarker.js +59 -41
- package/lib/commonjs/components/MFMarker.js.map +1 -1
- package/lib/commonjs/components/MFPOI.js +44 -26
- package/lib/commonjs/components/MFPOI.js.map +1 -1
- package/lib/commonjs/components/MFPolygon.js +46 -28
- package/lib/commonjs/components/MFPolygon.js.map +1 -1
- package/lib/commonjs/components/MFPolyline.js +42 -24
- package/lib/commonjs/components/MFPolyline.js.map +1 -1
- package/lib/commonjs/components/MFTileOverlay.js +9 -9
- package/lib/commonjs/components/MFTileOverlay.js.map +1 -1
- package/lib/commonjs/components/Map4dMapView.js.map +1 -1
- package/lib/commonjs/components/extends/AreaFocusManager.js +16 -16
- package/lib/commonjs/components/extends/AreaFocusManager.js.map +1 -1
- package/lib/commonjs/components/extends/AreaFocuser.js +2 -2
- package/lib/commonjs/components/extends/AreaFocuser.js.map +1 -1
- package/lib/commonjs/components/extends/BoundHelper.js.map +1 -1
- package/lib/commonjs/components/extends/area/AreaFocusAreas.js.map +1 -1
- package/lib/commonjs/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
- package/lib/commonjs/components/extends/area/AreaFocusSession.js.map +1 -1
- package/lib/commonjs/components/extends/area/AreaFocusTypes.js +18 -18
- package/lib/commonjs/components/extends/area/AreaFocusTypes.js.map +1 -1
- package/lib/commonjs/components/internal/DefaultRoadmapStyle.js.map +1 -1
- package/lib/commonjs/components/internal/GeojsonStyleUtils.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/MFBanDoSo.js.map +1 -1
- package/lib/module/components/MFBuilding.js +51 -33
- package/lib/module/components/MFBuilding.js.map +1 -1
- package/lib/module/components/MFCircle.js +45 -27
- package/lib/module/components/MFCircle.js.map +1 -1
- package/lib/module/components/MFDirectionsRenderer.js +57 -39
- package/lib/module/components/MFDirectionsRenderer.js.map +1 -1
- package/lib/module/components/MFMapView.js +92 -75
- package/lib/module/components/MFMapView.js.map +1 -1
- package/lib/module/components/MFMarker.js +60 -42
- package/lib/module/components/MFMarker.js.map +1 -1
- package/lib/module/components/MFPOI.js +45 -27
- package/lib/module/components/MFPOI.js.map +1 -1
- package/lib/module/components/MFPolygon.js +47 -29
- package/lib/module/components/MFPolygon.js.map +1 -1
- package/lib/module/components/MFPolyline.js +43 -25
- package/lib/module/components/MFPolyline.js.map +1 -1
- package/lib/module/components/MFTileOverlay.js +9 -9
- package/lib/module/components/MFTileOverlay.js.map +1 -1
- package/lib/module/components/Map4dMapView.js.map +1 -1
- package/lib/module/components/extends/AreaFocusManager.js +16 -16
- package/lib/module/components/extends/AreaFocusManager.js.map +1 -1
- package/lib/module/components/extends/AreaFocuser.js +2 -2
- package/lib/module/components/extends/AreaFocuser.js.map +1 -1
- package/lib/module/components/extends/BoundHelper.js.map +1 -1
- package/lib/module/components/extends/area/AreaFocusAreas.js.map +1 -1
- package/lib/module/components/extends/area/AreaFocusGeometryUtils.js.map +1 -1
- package/lib/module/components/extends/area/AreaFocusSession.js.map +1 -1
- package/lib/module/components/extends/area/AreaFocusTypes.js +18 -18
- package/lib/module/components/extends/area/AreaFocusTypes.js.map +1 -1
- package/lib/module/components/internal/DefaultRoadmapStyle.js.map +1 -1
- package/lib/module/components/internal/GeojsonStyleUtils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/Map4dMapView.d.ts +7 -7
- package/package.json +152 -152
- package/react-native-map4d-map.podspec +20 -20
- package/src/components/MFBanDoSo.js +124 -124
- package/src/components/MFBuilding.js +200 -187
- package/src/components/MFCircle.js +186 -173
- package/src/components/MFDirectionsRenderer.js +250 -237
- package/src/components/MFMapView.js +480 -464
- package/src/components/MFMarker.js +259 -246
- package/src/components/MFPOI.js +197 -184
- package/src/components/MFPolygon.js +199 -186
- package/src/components/MFPolyline.js +185 -172
- package/src/components/MFTileOverlay.js +45 -45
- package/src/components/Map4dMapView.tsx +26 -26
- package/src/components/extends/AreaFocusManager.js +196 -196
- package/src/components/extends/AreaFocuser.js +61 -61
- package/src/components/extends/BoundHelper.js +31 -31
- package/src/components/extends/area/AreaFocusAreas.js +164 -164
- package/src/components/extends/area/AreaFocusGeometryUtils.js +164 -164
- package/src/components/extends/area/AreaFocusSession.js +100 -100
- package/src/components/extends/area/AreaFocusTypes.js +36 -36
- package/src/components/internal/DefaultRoadmapStyle.js +3365 -3365
- package/src/components/internal/GeojsonStyleUtils.js +143 -143
- package/src/index.js +25 -25
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
package com.reactnativemap4dmap;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
|
|
5
|
-
import vn.map4d.map.core.*;
|
|
6
|
-
|
|
7
|
-
import vn.map4d.map.overlays.MFTileOverlay;
|
|
8
|
-
import vn.map4d.map.overlays.MFTileOverlayOptions;
|
|
9
|
-
import vn.map4d.map.overlays.MFTileProvider;
|
|
10
|
-
import vn.map4d.map.overlays.MFUrlTileProvider;
|
|
11
|
-
|
|
12
|
-
public class RMFTileOverlay extends RMFFeature {
|
|
13
|
-
|
|
14
|
-
private MFTileOverlayOptions options;
|
|
15
|
-
private MFTileOverlay tileOverlay;
|
|
16
|
-
|
|
17
|
-
private String templateUrl;
|
|
18
|
-
private boolean visible;
|
|
19
|
-
private double zIndex;
|
|
20
|
-
|
|
21
|
-
public RMFTileOverlay(Context context) {
|
|
22
|
-
super(context);
|
|
23
|
-
visible = true;
|
|
24
|
-
zIndex = 0.0f;
|
|
25
|
-
templateUrl = null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public void addToMap(Map4D map) {
|
|
29
|
-
this.tileOverlay = map.addTileOverlay(getOptions());
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public void removeFromMap(Map4D map) {
|
|
33
|
-
if (tileOverlay == null) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
tileOverlay.remove();
|
|
37
|
-
tileOverlay = null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public void setTemplateUrl(String url) {
|
|
41
|
-
this.templateUrl = url;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public void setVisible(boolean visible) {
|
|
45
|
-
this.visible = visible;
|
|
46
|
-
if (tileOverlay != null) {
|
|
47
|
-
tileOverlay.setVisible(this.visible);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public void setZIndex(double zIndex) {
|
|
52
|
-
this.zIndex = zIndex;
|
|
53
|
-
if (tileOverlay != null) {
|
|
54
|
-
tileOverlay.setZIndex(this.zIndex);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public MFTileOverlayOptions getOptions() {
|
|
59
|
-
if (options == null) {
|
|
60
|
-
options = new MFTileOverlayOptions();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
fillOptions(options);
|
|
64
|
-
return options;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private MFTileOverlayOptions fillOptions(MFTileOverlayOptions options) {
|
|
68
|
-
MFTileProvider tileProvider = new MFUrlTileProvider() {
|
|
69
|
-
@Override
|
|
70
|
-
public String getTileUrl(int x, int y, int zoom) {
|
|
71
|
-
if (templateUrl == null) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
String url;
|
|
75
|
-
if (templateUrl.contains("{z}")) {
|
|
76
|
-
url = templateUrl.replace("{z}", String.valueOf(zoom));
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
url = templateUrl.replace("{zoom}", String.valueOf(zoom));
|
|
80
|
-
}
|
|
81
|
-
url = url.replace("{x}", String.valueOf(x));
|
|
82
|
-
url = url.replace("{y}", String.valueOf(y));
|
|
83
|
-
return url;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
options.tileProvider(tileProvider);
|
|
87
|
-
options.zIndex(zIndex);
|
|
88
|
-
options.visible(visible);
|
|
89
|
-
return options;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
public Object getFeature() {
|
|
93
|
-
return tileOverlay;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
1
|
+
package com.reactnativemap4dmap;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
|
|
5
|
+
import vn.map4d.map.core.*;
|
|
6
|
+
|
|
7
|
+
import vn.map4d.map.overlays.MFTileOverlay;
|
|
8
|
+
import vn.map4d.map.overlays.MFTileOverlayOptions;
|
|
9
|
+
import vn.map4d.map.overlays.MFTileProvider;
|
|
10
|
+
import vn.map4d.map.overlays.MFUrlTileProvider;
|
|
11
|
+
|
|
12
|
+
public class RMFTileOverlay extends RMFFeature {
|
|
13
|
+
|
|
14
|
+
private MFTileOverlayOptions options;
|
|
15
|
+
private MFTileOverlay tileOverlay;
|
|
16
|
+
|
|
17
|
+
private String templateUrl;
|
|
18
|
+
private boolean visible;
|
|
19
|
+
private double zIndex;
|
|
20
|
+
|
|
21
|
+
public RMFTileOverlay(Context context) {
|
|
22
|
+
super(context);
|
|
23
|
+
visible = true;
|
|
24
|
+
zIndex = 0.0f;
|
|
25
|
+
templateUrl = null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public void addToMap(Map4D map) {
|
|
29
|
+
this.tileOverlay = map.addTileOverlay(getOptions());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public void removeFromMap(Map4D map) {
|
|
33
|
+
if (tileOverlay == null) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
tileOverlay.remove();
|
|
37
|
+
tileOverlay = null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public void setTemplateUrl(String url) {
|
|
41
|
+
this.templateUrl = url;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public void setVisible(boolean visible) {
|
|
45
|
+
this.visible = visible;
|
|
46
|
+
if (tileOverlay != null) {
|
|
47
|
+
tileOverlay.setVisible(this.visible);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public void setZIndex(double zIndex) {
|
|
52
|
+
this.zIndex = zIndex;
|
|
53
|
+
if (tileOverlay != null) {
|
|
54
|
+
tileOverlay.setZIndex(this.zIndex);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public MFTileOverlayOptions getOptions() {
|
|
59
|
+
if (options == null) {
|
|
60
|
+
options = new MFTileOverlayOptions();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
fillOptions(options);
|
|
64
|
+
return options;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
private MFTileOverlayOptions fillOptions(MFTileOverlayOptions options) {
|
|
68
|
+
MFTileProvider tileProvider = new MFUrlTileProvider() {
|
|
69
|
+
@Override
|
|
70
|
+
public String getTileUrl(int x, int y, int zoom) {
|
|
71
|
+
if (templateUrl == null) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
String url;
|
|
75
|
+
if (templateUrl.contains("{z}")) {
|
|
76
|
+
url = templateUrl.replace("{z}", String.valueOf(zoom));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
url = templateUrl.replace("{zoom}", String.valueOf(zoom));
|
|
80
|
+
}
|
|
81
|
+
url = url.replace("{x}", String.valueOf(x));
|
|
82
|
+
url = url.replace("{y}", String.valueOf(y));
|
|
83
|
+
return url;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
options.tileProvider(tileProvider);
|
|
87
|
+
options.zIndex(zIndex);
|
|
88
|
+
options.visible(visible);
|
|
89
|
+
return options;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public Object getFeature() {
|
|
93
|
+
return tileOverlay;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
package com.reactnativemap4dmap;
|
|
2
|
-
|
|
3
|
-
import androidx.annotation.Nullable;
|
|
4
|
-
|
|
5
|
-
import com.facebook.react.bridge.ReadableArray;
|
|
6
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
-
import com.facebook.react.uimanager.ThemedReactContext;
|
|
8
|
-
import com.facebook.react.uimanager.ViewGroupManager;
|
|
9
|
-
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
10
|
-
|
|
11
|
-
import java.util.HashMap;
|
|
12
|
-
import java.util.Map;
|
|
13
|
-
|
|
14
|
-
public class RMFTileOverlayManager extends ViewGroupManager<RMFTileOverlay> {
|
|
15
|
-
private static final int k_setVisible = 1;
|
|
16
|
-
private static final int k_setZIndex = k_setVisible + 1;
|
|
17
|
-
|
|
18
|
-
@Override
|
|
19
|
-
public String getName() {
|
|
20
|
-
return "RMFTileOverlay";
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@Override
|
|
24
|
-
protected RMFTileOverlay createViewInstance(final ThemedReactContext reactContext) {
|
|
25
|
-
return new RMFTileOverlay(reactContext);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@Override
|
|
29
|
-
public void receiveCommand(final RMFTileOverlay view, final int commandId, @Nullable final ReadableArray args) {
|
|
30
|
-
ReadableMap data;
|
|
31
|
-
switch (commandId) {
|
|
32
|
-
case k_setVisible:
|
|
33
|
-
view.setVisible(args.getBoolean(0));
|
|
34
|
-
break;
|
|
35
|
-
case k_setZIndex:
|
|
36
|
-
view.setZIndex(args.getDouble(0));
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@Nullable
|
|
42
|
-
@Override
|
|
43
|
-
public Map<String, Integer> getCommandsMap() {
|
|
44
|
-
final HashMap<String, Integer> map = new HashMap();
|
|
45
|
-
map.put("setVisible", k_setVisible);
|
|
46
|
-
map.put("setZIndex", k_setZIndex);
|
|
47
|
-
return map;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@ReactProp(name = "urlTemplate")
|
|
51
|
-
public void setTemplateUrl(final RMFTileOverlay view, final String url) {
|
|
52
|
-
view.setTemplateUrl(url);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@ReactProp(name = "visible")
|
|
56
|
-
public void setVisible(final RMFTileOverlay view, final boolean visible) {
|
|
57
|
-
view.setVisible(visible);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
@ReactProp(name = "zIndex")
|
|
61
|
-
public void setZIndex(final RMFTileOverlay view, final double zIndex) {
|
|
62
|
-
view.setZIndex(zIndex);
|
|
63
|
-
}
|
|
64
|
-
|
|
1
|
+
package com.reactnativemap4dmap;
|
|
2
|
+
|
|
3
|
+
import androidx.annotation.Nullable;
|
|
4
|
+
|
|
5
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
6
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
+
import com.facebook.react.uimanager.ThemedReactContext;
|
|
8
|
+
import com.facebook.react.uimanager.ViewGroupManager;
|
|
9
|
+
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
10
|
+
|
|
11
|
+
import java.util.HashMap;
|
|
12
|
+
import java.util.Map;
|
|
13
|
+
|
|
14
|
+
public class RMFTileOverlayManager extends ViewGroupManager<RMFTileOverlay> {
|
|
15
|
+
private static final int k_setVisible = 1;
|
|
16
|
+
private static final int k_setZIndex = k_setVisible + 1;
|
|
17
|
+
|
|
18
|
+
@Override
|
|
19
|
+
public String getName() {
|
|
20
|
+
return "RMFTileOverlay";
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Override
|
|
24
|
+
protected RMFTileOverlay createViewInstance(final ThemedReactContext reactContext) {
|
|
25
|
+
return new RMFTileOverlay(reactContext);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public void receiveCommand(final RMFTileOverlay view, final int commandId, @Nullable final ReadableArray args) {
|
|
30
|
+
ReadableMap data;
|
|
31
|
+
switch (commandId) {
|
|
32
|
+
case k_setVisible:
|
|
33
|
+
view.setVisible(args.getBoolean(0));
|
|
34
|
+
break;
|
|
35
|
+
case k_setZIndex:
|
|
36
|
+
view.setZIndex(args.getDouble(0));
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Nullable
|
|
42
|
+
@Override
|
|
43
|
+
public Map<String, Integer> getCommandsMap() {
|
|
44
|
+
final HashMap<String, Integer> map = new HashMap();
|
|
45
|
+
map.put("setVisible", k_setVisible);
|
|
46
|
+
map.put("setZIndex", k_setZIndex);
|
|
47
|
+
return map;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@ReactProp(name = "urlTemplate")
|
|
51
|
+
public void setTemplateUrl(final RMFTileOverlay view, final String url) {
|
|
52
|
+
view.setTemplateUrl(url);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@ReactProp(name = "visible")
|
|
56
|
+
public void setVisible(final RMFTileOverlay view, final boolean visible) {
|
|
57
|
+
view.setVisible(visible);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@ReactProp(name = "zIndex")
|
|
61
|
+
public void setZIndex(final RMFTileOverlay view, final double zIndex) {
|
|
62
|
+
view.setZIndex(zIndex);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
65
|
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
-
* All rights reserved.
|
|
4
|
-
* This source code is licensed under the BSD-style license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6
|
-
* of patent rights can be found in the PATENTS file in the same directory.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
package com.reactnativemap4dmap;
|
|
10
|
-
|
|
11
|
-
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
12
|
-
import com.facebook.react.uimanager.UIViewOperationQueue;
|
|
13
|
-
|
|
14
|
-
import java.util.HashMap;
|
|
15
|
-
import java.util.Map;
|
|
16
|
-
|
|
17
|
-
// Custom LayoutShadowNode implementation used in conjunction with the AirMapManager
|
|
18
|
-
// which sends the width/height of the view after layout occurs.
|
|
19
|
-
public class SizeReportingShadowNode extends LayoutShadowNode {
|
|
20
|
-
|
|
21
|
-
@Override
|
|
22
|
-
public void onCollectExtraUpdates(UIViewOperationQueue uiViewOperationQueue) {
|
|
23
|
-
super.onCollectExtraUpdates(uiViewOperationQueue);
|
|
24
|
-
|
|
25
|
-
Map<String, Float> data = new HashMap<>();
|
|
26
|
-
data.put("width", getLayoutWidth());
|
|
27
|
-
data.put("height", getLayoutHeight());
|
|
28
|
-
|
|
29
|
-
uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), data);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* This source code is licensed under the BSD-style license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
package com.reactnativemap4dmap;
|
|
10
|
+
|
|
11
|
+
import com.facebook.react.uimanager.LayoutShadowNode;
|
|
12
|
+
import com.facebook.react.uimanager.UIViewOperationQueue;
|
|
13
|
+
|
|
14
|
+
import java.util.HashMap;
|
|
15
|
+
import java.util.Map;
|
|
16
|
+
|
|
17
|
+
// Custom LayoutShadowNode implementation used in conjunction with the AirMapManager
|
|
18
|
+
// which sends the width/height of the view after layout occurs.
|
|
19
|
+
public class SizeReportingShadowNode extends LayoutShadowNode {
|
|
20
|
+
|
|
21
|
+
@Override
|
|
22
|
+
public void onCollectExtraUpdates(UIViewOperationQueue uiViewOperationQueue) {
|
|
23
|
+
super.onCollectExtraUpdates(uiViewOperationQueue);
|
|
24
|
+
|
|
25
|
+
Map<String, Float> data = new HashMap<>();
|
|
26
|
+
data.put("width", getLayoutWidth());
|
|
27
|
+
data.put("height", getLayoutHeight());
|
|
28
|
+
|
|
29
|
+
uiViewOperationQueue.enqueueUpdateExtraData(getReactTag(), data);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
package com.reactnativemap4dmap;
|
|
2
|
-
|
|
3
|
-
import android.content.Context;
|
|
4
|
-
import android.graphics.Canvas;
|
|
5
|
-
import android.graphics.Rect;
|
|
6
|
-
import android.os.Build;
|
|
7
|
-
|
|
8
|
-
import com.facebook.react.uimanager.ViewProps;
|
|
9
|
-
import com.facebook.react.views.view.ReactViewGroup;
|
|
10
|
-
|
|
11
|
-
public class ViewAttacherGroup extends ReactViewGroup {
|
|
12
|
-
|
|
13
|
-
public ViewAttacherGroup(Context context) {
|
|
14
|
-
super(context);
|
|
15
|
-
|
|
16
|
-
this.setWillNotDraw(true);
|
|
17
|
-
this.setVisibility(VISIBLE);
|
|
18
|
-
this.setAlpha(0.0f);
|
|
19
|
-
this.setRemoveClippedSubviews(false);
|
|
20
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
|
21
|
-
this.setClipBounds(new Rect(0, 0, 0, 0));
|
|
22
|
-
}
|
|
23
|
-
this.setOverflow("hidden"); // Change to ViewProps.HIDDEN until RN 0.57 is base
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// This should make it more performant, avoid trying to hard to overlap layers with opacity.
|
|
27
|
-
@Override
|
|
28
|
-
public boolean hasOverlappingRendering() {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
package com.reactnativemap4dmap;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.graphics.Canvas;
|
|
5
|
+
import android.graphics.Rect;
|
|
6
|
+
import android.os.Build;
|
|
7
|
+
|
|
8
|
+
import com.facebook.react.uimanager.ViewProps;
|
|
9
|
+
import com.facebook.react.views.view.ReactViewGroup;
|
|
10
|
+
|
|
11
|
+
public class ViewAttacherGroup extends ReactViewGroup {
|
|
12
|
+
|
|
13
|
+
public ViewAttacherGroup(Context context) {
|
|
14
|
+
super(context);
|
|
15
|
+
|
|
16
|
+
this.setWillNotDraw(true);
|
|
17
|
+
this.setVisibility(VISIBLE);
|
|
18
|
+
this.setAlpha(0.0f);
|
|
19
|
+
this.setRemoveClippedSubviews(false);
|
|
20
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
|
21
|
+
this.setClipBounds(new Rect(0, 0, 0, 0));
|
|
22
|
+
}
|
|
23
|
+
this.setOverflow("hidden"); // Change to ViewProps.HIDDEN until RN 0.57 is base
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// This should make it more performant, avoid trying to hard to overlap layers with opacity.
|
|
27
|
+
@Override
|
|
28
|
+
public boolean hasOverlappingRendering() {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
package com.reactnativemap4dmap;
|
|
2
|
-
|
|
3
|
-
import android.os.Handler;
|
|
4
|
-
import android.os.Looper;
|
|
5
|
-
|
|
6
|
-
import java.util.LinkedList;
|
|
7
|
-
|
|
8
|
-
public class ViewChangesTracker {
|
|
9
|
-
|
|
10
|
-
private static ViewChangesTracker instance;
|
|
11
|
-
private Handler handler;
|
|
12
|
-
private LinkedList<RMFMarker> markers = new LinkedList<>();
|
|
13
|
-
private boolean hasScheduledFrame = false;
|
|
14
|
-
private Runnable updateRunnable;
|
|
15
|
-
private final long fps = 40;
|
|
16
|
-
|
|
17
|
-
private ViewChangesTracker() {
|
|
18
|
-
handler = new Handler(Looper.myLooper());
|
|
19
|
-
updateRunnable = new Runnable() {
|
|
20
|
-
@Override
|
|
21
|
-
public void run() {
|
|
22
|
-
hasScheduledFrame = false;
|
|
23
|
-
update();
|
|
24
|
-
|
|
25
|
-
if (markers.size() > 0) {
|
|
26
|
-
handler.postDelayed(updateRunnable, fps);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
static ViewChangesTracker getInstance() {
|
|
33
|
-
if (instance == null) {
|
|
34
|
-
synchronized (ViewChangesTracker.class) {
|
|
35
|
-
instance = new ViewChangesTracker();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return instance;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public void addMarker(RMFMarker marker) {
|
|
43
|
-
markers.add(marker);
|
|
44
|
-
|
|
45
|
-
if (!hasScheduledFrame) {
|
|
46
|
-
hasScheduledFrame = true;
|
|
47
|
-
handler.postDelayed(updateRunnable, fps);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public void removeMarker(RMFMarker marker) {
|
|
52
|
-
markers.remove(marker);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private LinkedList<RMFMarker> markersToRemove = new LinkedList<>();
|
|
56
|
-
|
|
57
|
-
public void update() {
|
|
58
|
-
for (RMFMarker marker : markers) {
|
|
59
|
-
if (!marker.updateCustomForTracking()) {
|
|
60
|
-
markersToRemove.add(marker);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Remove markers that are not active anymore
|
|
65
|
-
if (markersToRemove.size() > 0) {
|
|
66
|
-
markers.removeAll(markersToRemove);
|
|
67
|
-
markersToRemove.clear();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
package com.reactnativemap4dmap;
|
|
2
|
+
|
|
3
|
+
import android.os.Handler;
|
|
4
|
+
import android.os.Looper;
|
|
5
|
+
|
|
6
|
+
import java.util.LinkedList;
|
|
7
|
+
|
|
8
|
+
public class ViewChangesTracker {
|
|
9
|
+
|
|
10
|
+
private static ViewChangesTracker instance;
|
|
11
|
+
private Handler handler;
|
|
12
|
+
private LinkedList<RMFMarker> markers = new LinkedList<>();
|
|
13
|
+
private boolean hasScheduledFrame = false;
|
|
14
|
+
private Runnable updateRunnable;
|
|
15
|
+
private final long fps = 40;
|
|
16
|
+
|
|
17
|
+
private ViewChangesTracker() {
|
|
18
|
+
handler = new Handler(Looper.myLooper());
|
|
19
|
+
updateRunnable = new Runnable() {
|
|
20
|
+
@Override
|
|
21
|
+
public void run() {
|
|
22
|
+
hasScheduledFrame = false;
|
|
23
|
+
update();
|
|
24
|
+
|
|
25
|
+
if (markers.size() > 0) {
|
|
26
|
+
handler.postDelayed(updateRunnable, fps);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static ViewChangesTracker getInstance() {
|
|
33
|
+
if (instance == null) {
|
|
34
|
+
synchronized (ViewChangesTracker.class) {
|
|
35
|
+
instance = new ViewChangesTracker();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return instance;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public void addMarker(RMFMarker marker) {
|
|
43
|
+
markers.add(marker);
|
|
44
|
+
|
|
45
|
+
if (!hasScheduledFrame) {
|
|
46
|
+
hasScheduledFrame = true;
|
|
47
|
+
handler.postDelayed(updateRunnable, fps);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public void removeMarker(RMFMarker marker) {
|
|
52
|
+
markers.remove(marker);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
private LinkedList<RMFMarker> markersToRemove = new LinkedList<>();
|
|
56
|
+
|
|
57
|
+
public void update() {
|
|
58
|
+
for (RMFMarker marker : markers) {
|
|
59
|
+
if (!marker.updateCustomForTracking()) {
|
|
60
|
+
markersToRemove.add(marker);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Remove markers that are not active anymore
|
|
65
|
+
if (markersToRemove.size() > 0) {
|
|
66
|
+
markers.removeAll(markersToRemove);
|
|
67
|
+
markersToRemove.clear();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
package vn.map4d.map.annotations;
|
|
2
|
-
|
|
3
|
-
import android.graphics.Bitmap;
|
|
4
|
-
|
|
5
|
-
public class RMFBitmapDescriptor {
|
|
6
|
-
public static MFBitmapDescriptor create(Bitmap bitmap, int densityDpi) {
|
|
7
|
-
return new MFBitmapDescriptor(bitmap, densityDpi);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
package vn.map4d.map.annotations;
|
|
2
|
+
|
|
3
|
+
import android.graphics.Bitmap;
|
|
4
|
+
|
|
5
|
+
public class RMFBitmapDescriptor {
|
|
6
|
+
public static MFBitmapDescriptor create(Bitmap bitmap, int densityDpi) {
|
|
7
|
+
return new MFBitmapDescriptor(bitmap, densityDpi);
|
|
8
|
+
}
|
|
9
|
+
}
|
package/ios/Map4dMap.h
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#import <React/RCTBridgeModule.h>
|
|
2
|
-
#import "RMFMapViewManager.h"
|
|
3
|
-
#import "RMFMarkerManager.h"
|
|
4
|
-
|
|
5
|
-
@interface Map4dMap : NSObject <RCTBridgeModule>
|
|
6
|
-
|
|
7
|
-
@end
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
|
2
|
+
#import "RMFMapViewManager.h"
|
|
3
|
+
#import "RMFMarkerManager.h"
|
|
4
|
+
|
|
5
|
+
@interface Map4dMap : NSObject <RCTBridgeModule>
|
|
6
|
+
|
|
7
|
+
@end
|
package/ios/Map4dMap.m
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
#import "Map4dMap.h"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
@implementation Map4dMap
|
|
5
|
-
|
|
6
|
-
RCT_EXPORT_MODULE()
|
|
7
|
-
|
|
8
|
-
RCT_EXPORT_METHOD(sampleMethod:(NSString *)stringArgument numberParameter:(nonnull NSNumber *)numberArgument callback:(RCTResponseSenderBlock)callback)
|
|
9
|
-
{
|
|
10
|
-
// TODO: Implement some actually useful functionality
|
|
11
|
-
callback(@[[NSString stringWithFormat: @"numberArgument: %@ stringArgument: %@", numberArgument, stringArgument]]);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@end
|
|
1
|
+
#import "Map4dMap.h"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@implementation Map4dMap
|
|
5
|
+
|
|
6
|
+
RCT_EXPORT_MODULE()
|
|
7
|
+
|
|
8
|
+
RCT_EXPORT_METHOD(sampleMethod:(NSString *)stringArgument numberParameter:(nonnull NSNumber *)numberArgument callback:(RCTResponseSenderBlock)callback)
|
|
9
|
+
{
|
|
10
|
+
// TODO: Implement some actually useful functionality
|
|
11
|
+
callback(@[[NSString stringWithFormat: @"numberArgument: %@ stringArgument: %@", numberArgument, stringArgument]]);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@end
|