You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sedona.apache.org by ji...@apache.org on 2022/10/25 16:49:24 UTC

[incubator-sedona] branch master updated: [SEDONA-182] ST_AsText should not return SRID (#703)

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/incubator-sedona.git


The following commit(s) were added to refs/heads/master by this push:
     new 3533b9f3 [SEDONA-182] ST_AsText should not return SRID (#703)
3533b9f3 is described below

commit 3533b9f38618c4916991ec741ef66f0b64a2462c
Author: Martin Andersson <u....@gmail.com>
AuthorDate: Tue Oct 25 18:49:17 2022 +0200

    [SEDONA-182] ST_AsText should not return SRID (#703)
---
 common/src/main/java/org/apache/sedona/common/Functions.java       | 4 ++++
 common/src/main/java/org/apache/sedona/common/utils/GeomUtils.java | 7 +++++++
 .../org/apache/spark/sql/sedona_sql/expressions/Functions.scala    | 2 +-
 sql/src/test/scala/org/apache/sedona/sql/functionTestScala.scala   | 2 ++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/common/src/main/java/org/apache/sedona/common/Functions.java b/common/src/main/java/org/apache/sedona/common/Functions.java
index be0eb151..435f60da 100644
--- a/common/src/main/java/org/apache/sedona/common/Functions.java
+++ b/common/src/main/java/org/apache/sedona/common/Functions.java
@@ -227,6 +227,10 @@ public class Functions {
         return GeomUtils.getEWKT(geometry);
     }
 
+    public static String asWKT(Geometry geometry) {
+        return GeomUtils.getWKT(geometry);
+    }
+
     public static byte[] asEWKB(Geometry geometry) {
         return GeomUtils.getEWKB(geometry);
     }
diff --git a/common/src/main/java/org/apache/sedona/common/utils/GeomUtils.java b/common/src/main/java/org/apache/sedona/common/utils/GeomUtils.java
index d2f0dde6..b3d3cc7c 100644
--- a/common/src/main/java/org/apache/sedona/common/utils/GeomUtils.java
+++ b/common/src/main/java/org/apache/sedona/common/utils/GeomUtils.java
@@ -142,6 +142,13 @@ public class GeomUtils {
         return sridString + new WKTWriter(GeomUtils.getDimension(geometry)).write(geometry);
     }
 
+    public static String getWKT(Geometry geometry) {
+        if (geometry == null) {
+            return null;
+        }
+        return new WKTWriter(GeomUtils.getDimension(geometry)).write(geometry);
+    }
+
     public static byte[] getEWKB(Geometry geometry) {
         if (geometry == null) {
             return null;
diff --git a/sql/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/Functions.scala b/sql/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/Functions.scala
index 1ae659ca..9acdbfc1 100644
--- a/sql/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/Functions.scala
+++ b/sql/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/Functions.scala
@@ -398,7 +398,7 @@ case class ST_PrecisionReduce(inputExpressions: Seq[Expression])
 }
 
 case class ST_AsText(inputExpressions: Seq[Expression])
-  extends  InferredUnaryExpression(Functions.asEWKT) {
+  extends  InferredUnaryExpression(Functions.asWKT) {
 
   protected def withNewChildrenInternal(newChildren: IndexedSeq[Expression]) = {
     copy(inputExpressions = newChildren)
diff --git a/sql/src/test/scala/org/apache/sedona/sql/functionTestScala.scala b/sql/src/test/scala/org/apache/sedona/sql/functionTestScala.scala
index 89bfb1be..99d68d51 100644
--- a/sql/src/test/scala/org/apache/sedona/sql/functionTestScala.scala
+++ b/sql/src/test/scala/org/apache/sedona/sql/functionTestScala.scala
@@ -325,6 +325,8 @@ class functionTestScala extends TestBaseScala with Matchers with GeometrySample
       polygonDf.createOrReplaceTempView("polygondf")
       var wktDf = sparkSession.sql("select ST_AsText(countyshape) as wkt from polygondf")
       assert(polygonDf.take(1)(0).getAs[Geometry]("countyshape").toText.equals(wktDf.take(1)(0).getAs[String]("wkt")))
+      val wkt = sparkSession.sql("select ST_AsText(ST_SetSRID(ST_Point(1.0,1.0), 3021))").first().getString(0)
+      assert(wkt == "POINT (1 1)", "WKT should not contain SRID")
     }
 
     it("Passed ST_AsText 3D") {