Where can I find the source codes of spatial relationships functions such as ST_Overlaps?
问问题
325 次
1 回答
3
PostGIS 的 git 镜像是https://github.com/postgis/postgis。主源在 svn 中。如果您在 Google 上搜索“postgis source”并在 postgis 站点上找到相关页面,您就会知道这一点。
ST_Overlaps
在 SQL 中声明为:
CREATE OR REPLACE FUNCTION ST_Overlaps(geom1 geometry, geom2 geometry)
RETURNS boolean
AS 'SELECT $1 && $2 AND _ST_Overlaps($1,$2)'
这又指:
CREATE OR REPLACE FUNCTION _ST_Overlaps(geom1 geometry, geom2 geometry)
RETURNS boolean
AS 'MODULE_PATHNAME','overlaps'
LANGUAGE 'c' IMMUTABLE STRICT
COST 100;
所以 C 实现是一个名为 的函数overlaps
,它定义在postgis/lwgeom_geos.c
(找到ctags -R
用于构建源索引,然后vim -t overlaps
,但您可以使用任何您喜欢的 C 搜索工具,或者只是 grep)。
于 2014-02-10T00:33:13.863 回答