Skip to content

Commit eaa3f2e

Browse files
committed
geopackage-core 6.6.2
1 parent 97cba1c commit eaa3f2e

4 files changed

Lines changed: 47 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Adheres to [Semantic Versioning](http://semver.org/).
66

77
## 6.6.1 (TBD)
88

9-
* TBD
9+
* geopackage-core version 6.6.2
1010

1111
## [6.6.0](https://github.com/ngageoint/geopackage-java/releases/tag/6.6.0) (12-07-2022)
1212

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<dependency>
4747
<groupId>mil.nga.geopackage</groupId>
4848
<artifactId>geopackage-core</artifactId>
49-
<version>6.6.1</version>
49+
<version>6.6.2</version>
5050
<exclusions>
5151
<exclusion>
5252
<groupId>com.j256.ormlite</groupId>

src/test/java/mil/nga/geopackage/features/user/FeatureUtils.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import mil.nga.sf.MultiPolygon;
4444
import mil.nga.sf.Point;
4545
import mil.nga.sf.Polygon;
46+
import mil.nga.sf.wkb.GeometryCodes;
4647
import mil.nga.sf.wkb.GeometryReader;
4748

4849
/**
@@ -124,7 +125,12 @@ public static void testRead(GeoPackage geoPackage)
124125
Geometry geometryFromBytes = GeometryReader
125126
.readGeometry(wkbBytes);
126127
TestCase.assertNotNull(geometryFromBytes);
127-
TestCase.assertEquals(geometry.getGeometryType(),
128+
GeometryType type = GeometryCodes
129+
.getWKBGeometryType(geometry);
130+
if (type == GeometryType.MULTICURVE) {
131+
type = GeometryType.GEOMETRYCOLLECTION;
132+
}
133+
TestCase.assertEquals(type,
128134
geometryFromBytes.getGeometryType());
129135
validateGeometry(geometryType, geometryFromBytes);
130136

@@ -137,7 +143,7 @@ public static void testRead(GeoPackage geoPackage)
137143
Geometry geometryFromBytes2 = GeometryReader
138144
.readGeometry(wkbBytes2);
139145
TestCase.assertNotNull(geometryFromBytes2);
140-
TestCase.assertEquals(geometry.getGeometryType(),
146+
TestCase.assertEquals(type,
141147
geometryFromBytes2.getGeometryType());
142148
validateGeometry(geometryType, geometryFromBytes2);
143149
}

src/test/java/mil/nga/geopackage/geom/GeoPackageGeometryDataUtils.java

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,14 +255,48 @@ public static void compareGeometryData(GeoPackageGeometryData expected,
255255
// Compare header bytes
256256
compareByteArrays(expected.getHeaderBytes(), actual.getHeaderBytes());
257257

258+
Geometry expectedGeometry = expected.getGeometry();
259+
Geometry actualGeometry = actual.getGeometry();
260+
261+
byte[] expectedWKB = expected.getWkb();
262+
byte[] actualWKB = actual.getWkb();
263+
264+
byte[] expectedBytes = expected.getBytes();
265+
byte[] actualBytes = actual.getBytes();
266+
267+
if (expectedGeometry != null && actualGeometry != null
268+
&& expectedGeometry
269+
.getGeometryType() == GeometryType.MULTILINESTRING) {
270+
if (!(actualGeometry instanceof MultiLineString)) {
271+
@SuppressWarnings("unchecked")
272+
GeometryCollection<LineString> geomCollection = (GeometryCollection<LineString>) actualGeometry;
273+
MultiLineString multiLineString = new MultiLineString();
274+
multiLineString.addGeometries(geomCollection.getGeometries());
275+
actualGeometry = multiLineString;
276+
int wkbLocation;
277+
int byteLocation;
278+
if (actual.getByteOrder() == ByteOrder.BIG_ENDIAN) {
279+
wkbLocation = 4;
280+
byteLocation = 12;
281+
} else {
282+
wkbLocation = 1;
283+
byteLocation = 9;
284+
}
285+
byte code = (byte) GeometryCodes
286+
.getCode(GeometryType.MULTICURVE);
287+
actualWKB[wkbLocation] = code;
288+
actualBytes[byteLocation] = code;
289+
}
290+
}
291+
258292
// Compare geometries
259-
compareGeometries(expected.getGeometry(), actual.getGeometry());
293+
compareGeometries(expectedGeometry, actualGeometry);
260294

261295
// Compare well-known binary geometries
262-
compareByteArrays(expected.getWkb(), actual.getWkb());
296+
compareByteArrays(expectedWKB, actualWKB);
263297

264298
// Compare all bytes
265-
compareByteArrays(expected.getBytes(), actual.getBytes());
299+
compareByteArrays(expectedBytes, actualBytes);
266300

267301
}
268302

0 commit comments

Comments
 (0)