GraphDB geof: расстояние между двумя точками возвращает пустые поля - geosparql - PullRequest
0 голосов
/ 25 июня 2019

Я использую GraphDB и хочу вычислить geof: расстояние между двумя точками, используя geosparql.«Точка» и «Точка2» являются геометриями и имеют такую ​​структуру "POINT(-77.050125 38.892086)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>.Но поле dist в запросе по какой-то причине остается пустым.Почему это я не могу понять.Я уже включил geosparql.

Мой код следующий:

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX : <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>
    prefix geo: <http://www.opengis.net/ont/geosparql#>
    prefix geof: <http://www.opengis.net/def/function/geosparql/>
    prefix unit: <http://qudt.org/vocab/unit#>
    prefix sf: <http://www.opengis.net/ont/sf#>
    prefix test24: <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>

SELECT ?point2 (geof:distance(?point, ?point2, unit:Kilometer) as ?dist)

    WHERE
    {
        :MouseioMetaksisSoufliou :hasGPSCoordinates ?geom2.
        ?geom2 geo:asWKT ?point.
        ?geom3 geo:asWKT ?point2.
        FILTER (?geom2 != ?geom3).
    } 

Это сработало.Я думаю, что онтология устройства # вызвала проблему

вот мой рабочий код

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>
prefix geo: <http://www.opengis.net/ont/geosparql#>
prefix geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX uom: <http://www.opengis.net/def/uom/OGC/1.0/>
prefix sf: <http://www.opengis.net/ont/sf#>
prefix test24: <http://www.semanticweb.org/evangelos/ontologies/2019/2/untitled-ontology-2#>

SELECT ?point10 ((geof:distance(?point10, ?point11, uom:metre) < 2000) as ?dist)
WHERE
{
    :MouseioMetaksisSoufliou :hasGPSCoordinates ?geom2.
    ?geom2 geo:asWKT ?point.
    ?geom3 geo:asWKT ?point2.
    FILTER(!sameTerm(?geom2, ?geom3)).    
    BIND(CONCAT("<http://www.opengis.net/def/crs/OGC/1.3/CRS84> ", STR(?point))    as ?point5)
    BIND(CONCAT(STR(?point5), "^^geo:wktLiteral") as ?point10)
    BIND(CONCAT("<http://www.opengis.net/def/crs/OGC/1.3/CRS84> ", STR(?point2))    as ?point6)
    BIND(CONCAT(STR(?point6), "^^geo:wktLiteral") as ?point11)


} 
...