GeoServer 学习(四)存储过程示例

选择下面任何一个存储过程进行测试。
先创建这个存储过程,然后 导入 road_ld数据 即可测试。 
/* 存储过程 路段长度*/
create or replace function getLengthRoadLD(Curgid int)
returns varchar as
$$
begin
return( select ST_Length(geom) from road_ld where gid=Curgid  );
end;
$$
language plpgsql;
/* 存储过程 线路长度*/
create or replace function getLengthRoadXL(name “text”)
returns varchar as
$$
begin
return(select  ST_Length(ST_Union(array(SELECT   geom FROM   public.road_ld where 名称=name))))  ;
 
end;
$$
language plpgsql;
 
 
/* 存储过程 线路起点 位置*/
create or replace function getStartPointFromRoad(name “text”)
returns varchar as
$$
begin
return(select st_astext( _pgr_endpoint(ST_Union(array(SELECT   geom FROM   public.road_ld where 名称=name))))  );
end;
$$
language plpgsql;
/* 存储过程 线路终点 位置*/
create or replace function getEndPointFromRoad(name “text”)
returns varchar as
$$
begin
return(select st_astext( _pgr_endpoint(ST_Union(array(SELECT   geom FROM   public.road_ld where 名称=name))))  );
end;
$$
language plpgsql;
 
/* 存储过程 路段起点 位置*/
create or replace function getStartPointFromSection(Curgid int)
returns varchar as
$$
begin
–return (select st_asText((select geom from road_ld where gid=myname limit 1)));–没有select top 1 from tablename ….
return(select  st_astext(_pgr_startpoint(geom))  as qidian FROM   road_ld where gid=Curgid);
end;
$$
language plpgsql;
 
 
/* 存储过程 路段终点 位置*/
create or replace function getEndPointFromSection(Curgid int)
returns varchar as
$$
begin
return(select  st_astext(_pgr_endpoint(geom))  as qidian FROM   road_ld where gid=Curgid);
end;
$$
language plpgsql;
 
select ST_Area(geom)  from bou2_4p where name=’安徽省’            –计算面积
select ST_Length((select geom  from bou2_4l where name=’湖南省’)) –计算面积
 
 
select * from getStartPointFromSection(2);–路段起点 位置
select * from getEndPointFromSection(2);–路段终点 位置
select * from getStartPointFromRoad(‘西南路’);–线路起点 位置
select * from getEndPointFromRoad(‘西南路’);–线路终点 位置 ST_Length
select getLengthRoadLD(3);
select * from getLengthRoadXL(‘西南路’);–线路终点 位置 ST_Length
select getLengthRoadXL(‘西南路’);

转载自:https://blog.csdn.net/qq_35170213/article/details/80006356

You may also like...