@maplibre/maplibre-react-native 10.0.0-beta.8 → 10.0.0-beta.9

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.
@@ -10,9 +10,11 @@ import org.maplibre.geojson.Feature;
10
10
  import org.maplibre.geojson.FeatureCollection;
11
11
  import org.maplibre.geojson.Geometry;
12
12
  import org.maplibre.geojson.GeometryCollection;
13
+ import org.maplibre.geojson.MultiLineString;
13
14
  import org.maplibre.geojson.LineString;
14
15
  import org.maplibre.geojson.MultiPoint;
15
16
  import org.maplibre.geojson.Point;
17
+ import org.maplibre.geojson.MultiPolygon;
16
18
  import org.maplibre.geojson.Polygon;
17
19
  import org.maplibre.android.geometry.LatLng;
18
20
  import org.maplibre.android.geometry.LatLngBounds;
@@ -48,6 +50,12 @@ public class GeoJSONUtils {
48
50
  return fromLineString((LineString) geometry);
49
51
  case "Polygon":
50
52
  return fromPolygon((Polygon) geometry);
53
+ case "MultiPoint":
54
+ return fromMultiPoint((MultiPoint) geometry);
55
+ case "MultiLineString":
56
+ return fromMultiLineString((MultiLineString) geometry);
57
+ case "MultiPolygon":
58
+ return fromMultiPolygon((MultiPolygon) geometry);
51
59
  default:
52
60
  return null;
53
61
  }
@@ -74,6 +82,27 @@ public class GeoJSONUtils {
74
82
  return map;
75
83
  }
76
84
 
85
+ public static WritableMap fromMultiPoint(MultiPoint multiPoint) {
86
+ WritableMap map = Arguments.createMap();
87
+ map.putString("type", "MultiPoint");
88
+ map.putArray("coordinates", getCoordinates(multiPoint));
89
+ return map;
90
+ }
91
+
92
+ public static WritableMap fromMultiLineString(MultiLineString multiLineString) {
93
+ WritableMap map = Arguments.createMap();
94
+ map.putString("type", "MultiLineString");
95
+ map.putArray("coordinates", getCoordinates(multiLineString));
96
+ return map;
97
+ }
98
+
99
+ public static WritableMap fromMultiPolygon(MultiPolygon multiPolygon) {
100
+ WritableMap map = Arguments.createMap();
101
+ map.putString("type", "MultiPolygon");
102
+ map.putArray("coordinates", getCoordinates(multiPolygon));
103
+ return map;
104
+ }
105
+
77
106
  public static WritableArray getCoordinates(Point point) {
78
107
  return Arguments.fromArray(pointToDoubleArray(point));
79
108
  }
@@ -110,6 +139,57 @@ public class GeoJSONUtils {
110
139
  return array;
111
140
  }
112
141
 
142
+ public static WritableArray getCoordinates(MultiPoint multiPoint) {
143
+ WritableArray array = Arguments.createArray();
144
+
145
+ List<Point> points = multiPoint.coordinates();
146
+ for (Point point : points) {
147
+ array.pushArray(Arguments.fromArray(pointToDoubleArray(point)));
148
+ }
149
+
150
+ return array;
151
+ }
152
+
153
+ public static WritableArray getCoordinates(MultiLineString multiLineString) {
154
+ WritableArray array = Arguments.createArray();
155
+
156
+ List<List<Point>> lines = multiLineString.coordinates();
157
+ for (List<Point> line : lines) {
158
+ WritableArray lineArray = Arguments.createArray();
159
+
160
+ for (Point point : line) {
161
+ lineArray.pushArray(Arguments.fromArray(pointToDoubleArray(point)));
162
+ }
163
+
164
+ array.pushArray(lineArray);
165
+ }
166
+
167
+ return array;
168
+ }
169
+
170
+ public static WritableArray getCoordinates(MultiPolygon multiPolygon) {
171
+ WritableArray array = Arguments.createArray();
172
+
173
+ List<List<List<Point>>> polygons = multiPolygon.coordinates();
174
+ for (List<List<Point>> polygon : polygons) {
175
+ WritableArray polygonArray = Arguments.createArray();
176
+
177
+ for (List<Point> ring : polygon) {
178
+ WritableArray ringArray = Arguments.createArray();
179
+
180
+ for (Point point : ring) {
181
+ ringArray.pushArray(Arguments.fromArray(pointToDoubleArray(point)));
182
+ }
183
+
184
+ polygonArray.pushArray(ringArray);
185
+ }
186
+
187
+ array.pushArray(polygonArray);
188
+ }
189
+
190
+ return array;
191
+ }
192
+
113
193
  public static WritableMap toPointFeature(LatLng latLng, WritableMap properties) {
114
194
  WritableMap map = new WritableNativeMap();
115
195
  map.putString("type", "Feature");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maplibre/maplibre-react-native",
3
3
  "description": "React Native library for creating maps with MapLibre Native for Android & iOS",
4
- "version": "10.0.0-beta.8",
4
+ "version": "10.0.0-beta.9",
5
5
  "publishConfig": {
6
6
  "access": "public",
7
7
  "provenance": true