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

Pregunta:

Soy nuevo en PostGIS y GeoData.

Necesito encontrar dónde ha caído el rayo por un período de tiempo y un radio de kilómetros en función de una ubicación determinada.

Le he dado lon / lat y mi mesa es:

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

No sé cómo utilizar la consulta dentro o por radio. Básicamente, necesito encontrar cuántos puntos (relámpagos tengo en un radio de una ubicación determinada (lon / lat).

Estoy usando PostGreSQL 9.2 y PostGIS 2.0.

Gracias.

Respuesta:

Al igual que,

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
  );

Editar: si ya tiene sus datos en puntos de geometría, pero desea hacer una consulta de estilo geográfico:

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
  );

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım