PostGIS演算法示例

2021-08-14 18:59:16 字數 713 閱讀 9970

1 點的最近點查詢

select smoke, st_asgeojson(geom) as geom, company, address from power t order by st_distance(t.geom,st_geometryfromtext('point(113.77990722656251 34.63320791137959)',4326))  limit 1
4326為座標系編號;原理是根據距離找最近的乙個記錄

2.根據點在資料庫裡查詢在哪個多邊形中,11萬條記錄只需要94ms

select * from dt_cy where st_contains(geom, st_geometryfromtext('point(113.458729 34.816974)',4326));
3.使用knn(最近鄰法),計算距離多邊形最近的點,測試結果174ms

select * from teatcyd order by teatcyd.geom <-> (select geom from dt_cy where gid =74833) limit 1
4.建立索引(通用索引),新增後執行3直接變為100ms

create index teatcyd_geom_idx on teatcyd using gist (shape);

PostGIS教程二 PostGIS的安裝

目錄 二 安裝postgresql 三 安裝postgis 在安裝postgis前首先必須安裝postgresql,然後在安裝好的stack builder中選擇安裝postgis元件。這裡使用的postgresql版本是9.6。安裝postgresql安裝完成後,提示執行stack builder...

PostGIS教程二 PostGIS的安裝

目錄 二 安裝postgresql 三 安裝postgis 在安裝postgis前首先必須安裝postgresql,然後在安裝好的stack builder中選擇安裝postgis元件。這裡使用的postgresql版本是9.6。安裝postgresql安裝完成後,提示執行stack builder...

POSTGIS常用函式

1,基本操作函式 addgeometrycolumn 給乙個已存在屬性資料表增加乙個幾何字段 geomtry column schema name 指表的模式的名字,srid 必須是乙個整數指對應於 spatial ref sys 表,type必須是乙個大寫的字串,用來描述幾何型別,例如 polyg...