我在将带有非默认投影的数据加载到GraphDB时遇到了一些问题。
使用文档website中的示例文件,但将投影从CRS84更改为CRS83,会导致在运行示例2(也来自网站)时找不到交叉点。GraphDB是否支持使用不同的投影加载数据?如果是这样的话,我是否需要额外做些什么才能让它正常工作?
如果我将projection保留为CRS84,则一切都会按预期运行。
下面是我尝试执行的查询:
PREFIX my: <http://example.org/ApplicationSchema#>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
SELECT ?f
WHERE {
?f my:hasPointGeometry ?fGeom .
?fGeom geo:asWKT ?fWKT .
FILTER (geof:sfWithin(?fWKT, '''
<http://www.opengis.net/def/crs/OGC/1.3/CRS83>
Polygon ((-83.4 34.0, -83.1 34.0, -83.1 34.2, -83.4 34.2, -83.4 34.0))
'''^^geo:wktLiteral))
}发布于 2018-04-30 17:13:56
首先,作为一名地质学家,“将投影从CRS84改为CRS83”可能是灾难性的。如果您只是简单地将字符"4“更改为"3",您的数据现在已损坏。(也许我误解了“改变”对你意味着什么)。
从一个CRS到另一个CRS的转换是一个涉及重新投影的数学过程。这不能通过简单地更改CRS的名称来完成。
这里有一个链接来了解两个坐标系之间的许多差异:External documentation
最后,geof函数需要在同一个CRS中同时表示主体和对象。是你,意识到这些投影,保持连贯性。如果您重新投影其中一个,那么第二个也需要重新投影。这是为了保持数据/查询的一致性。
https://stackoverflow.com/questions/49204132
复制相似问题