如何使用RDFLIB将多边形坐标存储为WKT文字值?

问题描述 投票:0回答:1

我正在处理GEOSPARQL查询。我想使用RDF Graph(RDFLIB python)将多边形坐标存储为wktLiteral值。目前,我正在使用以下代码进行此操作。

GEO =命名空间(“ http://www.opengis.net/ont/geosparql#”)

if name == "wkt":
   self._graph.add((image, GEO["asWKT"], rl.Literal(value, datatype=GEO.wktGeneral)))

但是当我在Apache Fuseki服务器中看到结果时。我看不到“ POLYGON(())坐标”的正确数据类型。请让我知道是否有任何遗漏。谢谢。

Results Image

python rdf rdfs fuseki rdflib
1个回答
0
投票

尝试此代码:

from rdflib import Graph, Literal, URIRef, Namespace

GEO = Namespace("http://www.opengis.net/ont/geosparql#")

g = Graph()
g.bind("geo", GEO)
x = URIRef("x:")
g.add((x, GEO["asWKT"], Literal("value", datatype=GEO.wktLiteral)))


print(g.serialize(format="turtle").decode("utf-8"))

这将返回正确的数据类型。

  • 您需要将类型设置为wktLiteral,而不是wktGeneral
  • 您需要直接使用Literal(),而不是rl.Literal()

可能还有其他事情,但是您提供的代码不足以告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.