1 votos

Seleccione un porcentaje de un área que se encuentre dentro de un buffer

Si el búfer se encuentra a una distancia de 80 pies de una carretera, se creará una capa con el resultado del búfer. A continuación, produce una capa de la tierra a su alrededor. Sé que es necesario seleccionar todo lo que cae dentro de las áreas de amortiguación, y produce una capa que muestra el porcentaje de la cantidad de tierra que está dentro de ese amortiguador.
Estoy utilizando OpenJump para mostrar el mapa.

ejemplo de SQl

BUFFER

select ST_Buffer(geom,80)::geometry
(polygon,26986) As geom from road
where street = 'hope';

TIERRA

select *
from land;

O

He utilizado en postgis / pgadmin este sql pero openjump requieren geom para ser utilizado

select parcel, land_type , full_str
from land
left join road on ST_Dwithin(land.geom,road.geom, 19.812) 
where road_name = 'hope';

2voto

S.Lott Puntos 207588

Más o menos lo mismo que esta pregunta: cálculo del porcentaje de área de intersección en la cláusula where

Pero queremos obtener el porcentaje como una columna en la salida.
En este caso el código sería:

SELECT l.parcel, l.land_type , l.full_str,  l.geom, (sum((st_area (st_intersection (l.geom,buf.geom))/st_area(l.geom)))*100) as PERCENTAGE
FROM land l, 
(
    ST_Buffer(geom,80)::geometry(polygon,26986) as geom 
    FROM road
    WHERE street = 'hope'
) as buf
WHERE st_intersects(l.geom, buf.geom);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X