Как найти пересечение полигонов внутри Apache Fuseki Server? - PullRequest
0 голосов
/ 13 апреля 2020

Я использую Apache Сервер Jena Fuseki для хранения географических координат местоположения. Как узнать, что если два многоугольника или два прямоугольника пересекаются друг с другом внутри Фусеки. Пожалуйста, поделитесь ссылками, связанными с этим, если это возможно. Спасибо.

Здравствуйте ... Я просто обновляю вопрос, основываясь на комментариях ниже. Пожалуйста, предложите мне относительно проблемы, с которой я сталкиваюсь. Я сохранил геокоординаты в формате сериализации WKT. Когда я выполняю запрос ниже

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX geo: <http://www.opengis.net/ont/geosparql#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX : <http://example.org/#> 
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX spatial: <http://jena.apache.org/spatial#>
SELECT ?object
WHERE { 
GRAPH <http://project/base/default> { 
    ?subject geo:asWKT ?object .
} } 

, я получаю следующие результаты.

    object
1   
"POLYGON((8.463699817657472 48.99872928913063,8.463887572288515 48.998644821906865,8.46399486064911 48.998764483764916,8.46425771713257 48.99865538031766,8.464375734329225 48.998746886450874,8.463919758796694 48.99893693711346,8.463699817657472 48.99872928913063))"
2   
"POLYGON((8.463560342788698 48.99847940651206,8.463560342788698 48.99864834137738,8.46377491950989 48.99864834137738,8.46377491950989 48.99847940651206,8.463560342788698 48.99847940651206))"
3   
"POLYGON((8.463447690010073 48.99835974396915,8.463447690010073 48.99849348443939,8.463646173477175 48.99849348443939,8.463646173477175 48.99835974396915,8.463447690010073 48.99835974396915))"
4   
"POLYGON((8.463254570961 48.99821544463795,8.463254570961 48.99838438039854,8.463635444641115 48.99838438039854,8.463635444641115 48.99821544463795,8.463254570961 48.99821544463795))"
5   
"POLYGON((8.463689088821413 48.99826823712468,8.463689088821413 48.99845477012966,8.46402168273926 48.99845477012966,8.46402168273926 48.99826823712468,8.463689088821413 48.99826823712468))"
6   
"POLYGON((8.463892936706545 48.99843013373508,8.463892936706545 48.998588510344774,8.464316725730898 48.998588510344774,8.464316725730898 48.99843013373508,8.463892936706545 48.99843013373508))"
7   
"POLYGON((8.463093638420107 48.99805354732974,8.463093638420107 48.998243600637835,8.463737368583681 48.998243600637835,8.463737368583681 48.99805354732974,8.463093638420107 48.99805354732974))"
8   
"POLYGON((8.463619351387026 48.99797963751407,8.463619351387026 48.998180249615714,8.464118242263796 48.998180249615714,8.464118242263796 48.99797963751407,8.463619351387026 48.99797963751407))"
9   
"POLYGON((8.464407920837404 48.998303432084754,8.464407920837404 48.99857443244431,8.46477270126343 48.99857443244431,8.46477270126343 48.998303432084754,8.464407920837404 48.998303432084754))"
10  
"POLYGON((8.464225530624391 48.99806762537742,8.464225530624391 48.99839141937611,8.464820981025698 48.99839141937611,8.464820981025698 48.99806762537742,8.464225530624391 48.99806762537742))"

Затем я хочу отфильтровать объекты geo: WKT на основе гео: пересечение (пересечение или равно или содержит методы). И я обновил свой запрос, как показано ниже.

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX geo: <http://www.opengis.net/ont/geosparql#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX : <http://example.org/#> 
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX spatial: <http://jena.apache.org/spatial#>
SELECT ?object
WHERE { 
GRAPH <http://project/base/default> { 
    ?subject geo:asWKT ?object .
    ?object geo:equals "POLYGON((8.463699817657472 48.99872928913063,8.463887572288515 48.998644821906865,8.46399486064911 48.998764483764916,8.46425771713257 48.99865538031766,8.464375734329225 48.998746886450874,8.463919758796694 48.99893693711346,8.463699817657472 48.99872928913063))"
} } 

Что должно привести меня по крайней мере к координатам первого геообъекта, который действительно равен координатам ПОЛИГОНА, но я получаю пустые результаты, как показано на рисунке ниже. Пожалуйста, подскажите, где я ошибаюсь.

Screenshot for empty results returned in Fuseki

...