我在将具有非默认投影的数据加载到 GraphDB 时遇到了一些问题。
使用文档网站中的示例文件,但将投影从 CRS84 更改为 CRS83,导致在运行示例 2(也来自网站(时找不到交集。GraphDB 是否支持加载具有不同投影的数据?如果是这样,我是否需要做一些额外的事情才能使其正常工作?
如果我将投影保留为 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))
}
首先,作为一名地理学家,"将投影从CRS84更改为CRS83"可能是灾难性的。如果只是将字符"4"更改为"3",则数据现在已损坏。(也许我误解了"改变"对你意味着什么(。
从CRS到另一个CRS的转换是一个涉及重新投影的数学过程。不能通过简单地更改CRS的名称来完成。
以下是了解两个坐标系之间许多差异的链接:
最后,geof
函数需要在同一CRS中表达主语和宾语。是你,意识到预测,保持连贯性。如果重新投影其中一个,则第二个也需要重新投影。这是为了保持数据/查询的一致性。