This is an automated email from the ASF dual-hosted git repository.
imbruced pushed a commit to branch feature/geopackage-reader
in repository https://gitbox.apache.org/repos/asf/sedona.git
The following commit(s) were added to refs/heads/feature/geopackage-reader by
this push:
new f03527d28 Add other missing data types.
f03527d28 is described below
commit f03527d2879716fa57c484a1685da4b1125dd3d5
Author: pawelkocinski <[email protected]>
AuthorDate: Tue Sep 24 18:51:01 2024 +0200
Add other missing data types.
---
.../connection/GeoPackageConnectionManager.scala | 3 +--
.../sql/datasources/geopackage/transform/Image.scala | 15 ++++++++++-----
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
index ba89e2a24..5d068e702 100644
---
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
+++
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/connection/GeoPackageConnectionManager.scala
@@ -139,8 +139,7 @@ object GeoPackageConnectionManager {
srsID = srsID,
zoomLevelMetadata = getZoomLevelData,
tileRowMetadata = null)
- }
- finally {
+ } finally {
rs.close()
closeStatement(statement)
}
diff --git
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
index e8123c79d..c2c23e3c6 100644
---
a/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
+++
b/spark/common/src/main/scala/org/apache/sedona/sql/datasources/geopackage/transform/Image.scala
@@ -30,6 +30,11 @@ import javax.imageio.ImageIO
object Image {
+ private val WEBP_HEX = "52494646"
+ private val PNG_HEX = "89504E470D0A1A0A"
+ private val TIFF_HEX = Seq("49492A00", "4D4D002A")
+ private val JPEG_HEX = Seq("FFD8FFE0", "FFD8FFE1", "FFD8FFE8")
+
def readImageFile(
byteArray: Array[Byte],
tileMetadata: TileMetadata,
@@ -55,23 +60,23 @@ object Image {
val magicBytes = byteArray.take(12)
val magicHex = bytesToHex(magicBytes)
- if (magicHex.startsWith("524946")) {
+ if (magicHex.startsWith(WEBP_HEX)) {
val webpCheck = new String(byteArray.slice(8, 12))
if (webpCheck == "WEBP") {
return ImageFileFormat.WEBP
}
}
- if (magicHex.startsWith("89504E470D0A1A0A")) {
+ if (magicHex.startsWith(PNG_HEX)) {
return ImageFileFormat.PNG
}
- if (magicHex.startsWith("FFD8FFE0") || magicHex.startsWith("FFD8FFE1") ||
magicHex.startsWith(
- "FFD8FFE8")) {
+ if (JPEG_HEX.exists(magicHex.startsWith)) {
return ImageFileFormat.JPEG
}
- if (magicHex.startsWith("49492A00") || magicHex.startsWith("4D4D002A")) {
+
+ if (TIFF_HEX.exists(magicHex.startsWith)) {
return ImageFileFormat.TIFF
}