8 votos

Cómo encontrar puntos en un radio de kilómetros

Soy nuevo en PostGIS y datos geográficos.

Necesito encontrar donde el relámpago tiene movimiento por un período de tiempo y kilómetro de radio basado en un lugar determinado.

He dado lon/lat y mi tabla es:

latitude numeric not null,
longitude numeric not null,
time timestamp(0),
geom(point,4326)

No sé cómo utilizar dentro o una consulta de radio. Básicamente necesito encontrar cuántos puntos (rayos en un radio de un location(lon/lat) determinado.

Estoy usando 9.2 PostGreSQL y PostGIS 2.0.

Gracias.

13voto

NilObject Puntos 7874

Como tal,

CREATE INDEX mytable_gix ON mytable USING GIST (Geography(ST_MakePoint(lon, lat)));

SELECT * FROM mytable 
  WHERE ST_DWithin(
    Geography(ST_MakePoint(lon, lat)),
    Geography(ST_MakePoint($qlon, $qlat)),
    $radius_meters
  );

Edición: Si ya tienen sus datos en los puntos de la geometría, pero quiero hacer una consulta del estilo de geografía:

CREATE INDEX mytable_gix ON mytable USING GIST (Geography(geom));

SELECT * FROM mytable 
  WHERE ST_DWithin(
    Geography(geom),
    Geography(ST_MakePoint($qlon, $qlat)),
    $radius_meters
  );

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