This is an automated email from the ASF dual-hosted git repository.
jiayu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sedona.git
The following commit(s) were added to refs/heads/master by this push:
new f117a1b5f9 [GH-2312] Fix the precision lost issue in OSM PBF again
(#2323)
f117a1b5f9 is described below
commit f117a1b5f93defdcdae320dce2c0d6c3f91e6208
Author: Jia Yu <[email protected]>
AuthorDate: Fri Aug 29 13:26:59 2025 -0700
[GH-2312] Fix the precision lost issue in OSM PBF again (#2323)
---
.../sedona/sql/datasources/osmpbf/extractors/DenseNodeExtractor.java | 4 ++--
spark/common/src/test/scala/org/apache/sedona/sql/OsmReaderTest.scala | 4 +---
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git
a/spark/common/src/main/java/org/apache/sedona/sql/datasources/osmpbf/extractors/DenseNodeExtractor.java
b/spark/common/src/main/java/org/apache/sedona/sql/datasources/osmpbf/extractors/DenseNodeExtractor.java
index 0b9ca93748..c65d2f870b 100644
---
a/spark/common/src/main/java/org/apache/sedona/sql/datasources/osmpbf/extractors/DenseNodeExtractor.java
+++
b/spark/common/src/main/java/org/apache/sedona/sql/datasources/osmpbf/extractors/DenseNodeExtractor.java
@@ -54,8 +54,8 @@ public class DenseNodeExtractor {
long latitude = nodes.getLat(idx) + firstLat;
long longitude = nodes.getLon(idx) + firstLon;
- float lat = (float) (.000000001 * (latOffset + (latitude * granularity)));
- float lon = (float) (.000000001 * (lonOffset + (longitude * granularity)));
+ double lat = .000000001 * (latOffset + (latitude * granularity));
+ double lon = .000000001 * (lonOffset + (longitude * granularity));
firstId = id;
firstLat = latitude;
diff --git
a/spark/common/src/test/scala/org/apache/sedona/sql/OsmReaderTest.scala
b/spark/common/src/test/scala/org/apache/sedona/sql/OsmReaderTest.scala
index 177f113011..0d791b2b24 100644
--- a/spark/common/src/test/scala/org/apache/sedona/sql/OsmReaderTest.scala
+++ b/spark/common/src/test/scala/org/apache/sedona/sql/OsmReaderTest.scala
@@ -134,9 +134,7 @@ class OsmReaderTest extends TestBaseScala with Matchers {
osmData
.selectExpr("min(location.longitude)", "max(location.latitude)")
.collect()
- .flatMap(row => Array(row.get(0), row.get(1))) shouldEqual (Array(
- 7.208188056945801,
- 43.759483337402344))
+ .flatMap(row => Array(row.get(0), row.get(1))) shouldEqual
(Array(7.2081882, 43.7594835))
osmData
.where("id == 4098197")