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