Added wktLiteral as data type to new geometries calculated
(KiwiEvaluationStrategy):
-buffer, convexHull, etc
Direct support Insertion of geometries in functions:
-example: geof:union(?geom1, "POLYGON(( -7 43, -2 43, -2 38, -7 38,
-7 43))"^^geo:wktLiteral))
-example: geof:union(?geom1, geof:buffer(?geom2, 50, units:meter))
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/52188c0c
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/52188c0c
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/52188c0c
Branch: refs/heads/MARMOTTA-584
Commit: 52188c0c14bd54c074b670f9a1e0144ed04c404d
Parents: 060dfc3
Author: cuent <[email protected]>
Authored: Sun Aug 16 15:29:46 2015 -0500
Committer: cuent <[email protected]>
Committed: Sun Aug 16 15:29:46 2015 -0500
----------------------------------------------------------------------
.../sparql/evaluation/KiWiEvaluationStrategy.java | 16 ++++++++++++++++
.../sparql/function/geosparql/BoundaryFunction.java | 9 ++++++++-
.../sparql/function/geosparql/BufferFunction.java | 12 ++++++++----
.../function/geosparql/ConvexHullFunction.java | 9 ++++++++-
.../function/geosparql/DifferenceFunction.java | 14 +++++++++++---
.../sparql/function/geosparql/DistanceFunction.java | 11 +++++++++--
.../function/geosparql/EhContainsFunction.java | 11 +++++++++--
.../function/geosparql/EhCoveredByFunction.java | 11 +++++++++--
.../sparql/function/geosparql/EhCoversFunction.java | 11 +++++++++--
.../function/geosparql/EhDisjointFunction.java | 11 +++++++++--
.../sparql/function/geosparql/EhEqualsFunction.java | 11 +++++++++--
.../sparql/function/geosparql/EhInsideFunction.java | 11 +++++++++--
.../sparql/function/geosparql/EhMeetFunction.java | 13 ++++++++++---
.../function/geosparql/EhOverlapFunction.java | 12 ++++++++++--
.../sparql/function/geosparql/EnvelopeFunction.java | 9 ++++++++-
.../sparql/function/geosparql/GetSRIDFunction.java | 14 +++++++++++++-
.../function/geosparql/IntersectionFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8DCFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8ECFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8EQFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8NTPPFunction.java | 11 +++++++++--
.../function/geosparql/Rcc8NTPPiFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8POFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8TPPFunction.java | 11 +++++++++--
.../sparql/function/geosparql/Rcc8TPPiFunction.java | 11 +++++++++--
.../sparql/function/geosparql/RelateFunction.java | 11 +++++++++--
.../function/geosparql/SfContainsFunction.java | 11 +++++++++--
.../function/geosparql/SfCrossesFunction.java | 11 +++++++++--
.../function/geosparql/SfDisjointFunction.java | 11 +++++++++--
.../sparql/function/geosparql/SfEqualsFunction.java | 11 +++++++++--
.../function/geosparql/SfIntersectsFunction.java | 11 +++++++++--
.../function/geosparql/SfOverlapsFunction.java | 11 +++++++++--
.../function/geosparql/SfTouchesFunction.java | 11 +++++++++--
.../sparql/function/geosparql/SfWithinFunction.java | 11 +++++++++--
.../function/geosparql/SymDifferenceFunction.java | 11 +++++++++--
.../sparql/function/geosparql/UnionFunction.java | 11 +++++++++--
36 files changed, 335 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/evaluation/KiWiEvaluationStrategy.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/evaluation/KiWiEvaluationStrategy.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/evaluation/KiWiEvaluationStrategy.java
index bc9b188..3a79a76 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/evaluation/KiWiEvaluationStrategy.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/evaluation/KiWiEvaluationStrategy.java
@@ -49,6 +49,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.*;
+import org.apache.marmotta.kiwi.model.rdf.KiWiUriResource;
/**
* An implementation of the SPARQL query evaluation strategy with specific
extensions and optimizations. The KiWi
@@ -314,6 +315,21 @@ public class KiWiEvaluationStrategy extends
EvaluationStrategyImpl{
resultRow.addBinding(sv.getSparqlName(), new LiteralImpl(svalue.toLowerCase(),
XSD.Boolean));
}
break;
+ case GEOMETRY:
+ if (row.getObject(sv.getName()) !=
null) {
+ svalue =
row.getString(sv.getName());
+ URI type = new
KiWiUriResource("http://www.opengis.net/ont/geosparql#wktLiteral");
+ try {
+ long typeId =
row.getLong(sv.getName() + "_TYPE");
+ if (typeId > 0) {
+ type = (URI)
connection.loadNodeById(typeId);
+ }
+ } catch (SQLException ex) {
+ }
+
+
resultRow.addBinding(sv.getSparqlName(), new LiteralImpl(svalue, type));
+ }
+ break;
case STRING:
default:
svalue = row.getString(sv.getName());
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
index f43e2b0..9a8ca1d 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BoundaryFunction.java
@@ -87,7 +87,14 @@ public class BoundaryFunction implements NativeFunction {
if (args.length == 1) {
String geom1 = args[0];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:buffer("POLYGON(( -7 43, -2 43, -2 38, -7
38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:buffer(geof:convexhull(?geom))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
return String.format("ST_AsText(ST_Boundary(%s)) ", geom1);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
index ef3a91e..6da2d04 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/BufferFunction.java
@@ -87,15 +87,19 @@ public class BufferFunction implements NativeFunction {
if (args.length == 3) {
String geom1 = args[0];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:buffer("POLYGON(( -7 43, -2 43, -2 38, -7
38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:buffer(geof:convexhull(?geom))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
if (args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.metre.toString() + "'")) {
return String.format("ST_AsText(ST_Transform(ST_Buffer(
ST_Transform( %s ,26986), %s),4326))", geom1, args[1]);
}
- if (args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.metre.toString() + "'")) {
- return String.format("ST_AsText(ST_Transform(ST_Buffer(
ST_Transform( %s ,26986), %s),4326))", geom1, args[1]);
- }
if (args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.degree.toString() + "'")) {
return String.format("ST_AsText(ST_Buffer(%s, %s))",
geom1, args[1]);
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
index 2bca87b..6826844 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/ConvexHullFunction.java
@@ -87,7 +87,14 @@ public class ConvexHullFunction implements NativeFunction {
if (args.length == 1) {
String geom1 = args[0];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:convexHull("POLYGON(( -7 43, -2 43, -2 38,
-7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:convexHull(geof:buffer(?geom, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
return String.format("ST_AsText(st_convexHull(%s))", geom1);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
index c07e3c4..d219c90 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DifferenceFunction.java
@@ -88,10 +88,17 @@ public class DifferenceFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:difference(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:difference(?geom1, geof:buffer(?geometry,
50, units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_AsText(ST_Difference(%s , %s )) ",
geom1, geom2);
@@ -119,7 +126,8 @@ public class DifferenceFunction implements NativeFunction {
* @return
*/
@Override
- public ValueType getArgumentType(int arg) {
+ public ValueType getArgumentType(int arg
+ ) {
return ValueType.GEOMETRY;
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
index 1f61efa..4a78f4d 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/DistanceFunction.java
@@ -88,10 +88,17 @@ public class DistanceFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:distance(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:distance(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
if (args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.meter.toString() + "'") || args[2].equalsIgnoreCase("'" +
FN_GEOSPARQL.metre.toString() + "'")) {
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
index 44b6f47..6643adf 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhContainsFunction.java
@@ -88,10 +88,17 @@ public class EhContainsFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehContains(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehContains(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'T*TFF*FF*')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
index 5df7e76..e7e87f0 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoveredByFunction.java
@@ -88,10 +88,17 @@ public class EhCoveredByFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehCoveredBy(?geom1, "POLYGON(( -7 43, -2
43, -2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehCoveredBy(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFF*TFT**')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
index 44047b2..0be040e 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhCoversFunction.java
@@ -88,10 +88,17 @@ public class EhCoversFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehCovers(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehCovers(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'T*TFT*FF*')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
index 7a0c446..7a1c10a 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhDisjointFunction.java
@@ -88,10 +88,17 @@ public class EhDisjointFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehDisjoint(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehDisjoint(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'FF*FF****')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
index 35d470c..1d84a4f 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhEqualsFunction.java
@@ -88,10 +88,17 @@ public class EhEqualsFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehEquals(?geom1, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehEquals(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
index d823851..a726d07 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhInsideFunction.java
@@ -88,10 +88,17 @@ public class EhInsideFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehInside(?geom, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehInside(?geom, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFF*FFT**')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
index f379790..379e3ed 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhMeetFunction.java
@@ -83,15 +83,22 @@ public class EhMeetFunction implements NativeFunction {
*/
@Override
public String getNative(KiWiDialect dialect, String... args) {
- if (dialect instanceof PostgreSQLDialect) {
+ if (dialect instanceof PostgreSQLDialect) {
if (args.length == 2) {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehMeet(?geom1, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehMeet(?geom1, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'F**T*****')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
index 865ba20..78ad11c 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EhOverlapFunction.java
@@ -83,15 +83,23 @@ public class EhOverlapFunction implements NativeFunction {
*/
@Override
public String getNative(KiWiDialect dialect, String... args) {
+
if (dialect instanceof PostgreSQLDialect) {
if (args.length == 2) {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:ehOverlap(?geom, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:ehOverlap(?geom, geof:buffer(?geom2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'T*T***T**')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
index a02423d..fea2bfd 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/EnvelopeFunction.java
@@ -87,7 +87,14 @@ public class EnvelopeFunction implements NativeFunction {
if (args.length == 1) {
String geom1 = args[0];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following conditions is required to read WKT inserted
directly into args[0] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:envelope("POLYGON(( -7 43, -2 43, -2 38, -7
38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:envelope(geof:buffer(?geom, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
return String.format("ST_AsText(ST_Envelope(%s)) ", geom1);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
index 513dcb6..4192d2c 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/GetSRIDFunction.java
@@ -85,7 +85,19 @@ public class GetSRIDFunction implements NativeFunction {
public String getNative(KiWiDialect dialect, String... args) {
if (dialect instanceof PostgreSQLDialect) {
if (args.length == 1) {
- return String.format("ST_SRID(%s)", args[0]);
+ String geom1 = args[0];
+ String SRID_default = "4326";
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:boundary("POLYGON(( -7 43, -2 43, -2 38, -7
38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:boundary(geof:buffer(?geom, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
+ geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
+ }
+ return String.format("ST_AsText(ST_Boundary(%s)) ", geom1);
}
}
throw new UnsupportedOperationException("getSRID function not
supported by dialect " + dialect);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
index 0cf92c0..394f700 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/IntersectionFunction.java
@@ -88,10 +88,17 @@ public class IntersectionFunction implements NativeFunction
{
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:intersection(?geom1, "POLYGON(( -7 43, -2
43, -2 38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:intersection(?geom1, geof:buffer(?geom2,
50, units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_AsText(st_Intersection(%s , %s ) )",
geom1, geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
index 43e53ea..4517408 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8DCFunction.java
@@ -88,10 +88,17 @@ public class Rcc8DCFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8dc(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8dc(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'FFTFFTTTT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
index 78bcdb1..4ed5b94 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8ECFunction.java
@@ -88,10 +88,17 @@ public class Rcc8ECFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8ec(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8ec(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'FFTFTTTTT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
index ddb4da1..92da0a5 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8EQFunction.java
@@ -88,10 +88,17 @@ public class Rcc8EQFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8eq(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8eq(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFFFTFFFT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
index 5240cf3..9088559 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPFunction.java
@@ -88,10 +88,17 @@ public class Rcc8NTPPFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8ntpp(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8ntpp(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFFTFFTTT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
index dbd03d6..75c5c67 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8NTPPiFunction.java
@@ -88,10 +88,17 @@ public class Rcc8NTPPiFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8ntppi(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8ntppi(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TTTFFTFFT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
index 8b9158b..d98285d 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8POFunction.java
@@ -88,10 +88,17 @@ public class Rcc8POFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8po(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8po(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TTTTTTTTT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
index dc46d36..67275c0 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPFunction.java
@@ -88,10 +88,17 @@ public class Rcc8TPPFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8tpp(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8tpp(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TFFTTFTTT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
index 3df014c..318c2ac 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/Rcc8TPPiFunction.java
@@ -88,10 +88,17 @@ public class Rcc8TPPiFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:rcc8tppi(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral)
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:rcc8tppi(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s, 'TTTFTTFFT')", geom1,
geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
index 8c2da34..b78a0ff 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/RelateFunction.java
@@ -88,10 +88,17 @@ public class RelateFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:relate(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral), "F**T*****")
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:relate(?wkt, geof:buffer(?wkt2, 50,
units:meter), "F**T*****")
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("ST_Relate(%s, %s , %s)", geom1, geom2,
args[2]);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
index 40641c9..001560a 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfContainsFunction.java
@@ -88,10 +88,17 @@ public class SfContainsFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:sfContains(?wkt, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral))
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:sfContains(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("st_Contains(%s , %s )", geom1, geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
index ae8ea92..9fc402a 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfCrossesFunction.java
@@ -88,10 +88,17 @@ public class SfCrossesFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:sfCrosses(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral))
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:sfCrosses(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("st_Crosses(%s , %s )", geom1, geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
index 51aece7..c089f3c 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfDisjointFunction.java
@@ -88,10 +88,17 @@ public class SfDisjointFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:sfDisjoint(?wkt, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral))
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:sfDisjoint(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("st_Disjoint(%s , %s )", geom1, geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
index 44df047..5169a64 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfEqualsFunction.java
@@ -88,10 +88,17 @@ public class SfEqualsFunction implements NativeFunction {
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:sfEquals(?wkt, "POLYGON(( -7 43, -2 43, -2
38, -7 38, -7 43))"^^geo:wktLiteral))
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:sfEquals(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("st_Equals(%s , %s )", geom1, geom2);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/52188c0c/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
----------------------------------------------------------------------
diff --git
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
index 9d8d1cb..c289e32 100644
---
a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
+++
b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/function/geosparql/SfIntersectsFunction.java
@@ -88,10 +88,17 @@ public class SfIntersectsFunction implements NativeFunction
{
String geom1 = args[0];
String geom2 = args[1];
String SRID_default = "4326";
- if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON")) {
+ /*
+ * The following condition is required to read WKT inserted
directly into args[0] or args[1] and create a geometries with SRID
+ * POINT, MULTIPOINT, LINESTRING ... and MULTIPOLYGON
conditions:
+ * example: geof:sfIntersects(?wkt, "POLYGON(( -7 43, -2 43,
-2 38, -7 38, -7 43))"^^geo:wktLiteral))
+ * st_AsText condition: It is to use the geometry that is the
result of another function geosparql.
+ * example: geof:sfIntersects(?wkt, geof:buffer(?wkt2, 50,
units:meter))
+ */
+ if (args[0].contains("POINT") ||
args[0].contains("MULTIPOINT") || args[0].contains("LINESTRING") ||
args[0].contains("MULTILINESTRING") || args[0].contains("POLYGON") ||
args[0].contains("MULTIPOLYGON") || args[0].contains("ST_AsText")) {
geom1 = String.format("ST_GeomFromText(%s,%s)", args[0],
SRID_default);
}
- if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON")) {
+ if (args[1].contains("POINT") ||
args[1].contains("MULTIPOINT") || args[1].contains("LINESTRING") ||
args[1].contains("MULTILINESTRING") || args[1].contains("POLYGON") ||
args[1].contains("MULTIPOLYGON") || args[1].contains("ST_AsText")) {
geom2 = String.format("ST_GeomFromText(%s,%s)", args[1],
SRID_default);
}
return String.format("st_Intersects(%s , %s ) ", geom1, geom2);