Si tengo un polígono en Postgis, ¿cómo puedo calcular y encontrar puntos aleatorios dentro de este polígono?Punto aleatorio de Postgis dentro de un polígono
5
A
Respuesta
5
El enlace citado por @Mike no tiene un código, pero hay buenas pistas de Dr.JTS: mapas de "densidad de puntos" ... "En esencia, esto implica crear un conjunto de N puntos aleatorios que se encuentran dentro de un polígono dado ". Una función hace esto: la entrada es el polígono, la salida los puntos aleatorios.
Estos enlaces tienen la misma función SQL/PostGIS RandomPoint(Geometry)
: sorokine 2011 y osgeo.org/postgis/wiki. El segundo enlace (wiki) es más completo, explicativo y muestra ejemplos, y una función RandomPointsInPolygon(geometry,integer)
que es una respuesta al problema.
La extensión de la solion a la entrada de la "densidad de puntos por zona", o la distancia promedio entre puntos:
CREATE OR REPLACE FUNCTION RandomPointsInPolygon(
geom geometry, -- the polygon
avg_dist float DEFAULT 20.0, -- average of 20 units between points
min_pts integer DEFAULT 1, -- min. of points
max_pts integer DEFAULT 1000 -- max. of points
) RETURNS SETOF geometry AS
$$
SELECT CASE WHEN npts=1 THEN ST_Centroid($1)
ELSE RandomPointsInPolygon($1,npts)
END
FROM (
SELECT CASE WHEN d<$3 THEN $3 WHEN d>$4 THEN $4 ELSE d END AS npts
FROM (SELECT (st_area($1)/(pi()*($2/2.0)^2))::integer AS d) AS t
) AS t2;
$$ LANGUAGE SQL;
Cuestiones relacionadas
- 1. ¿Identifica si un punto está dentro de un polígono?
- 2. Distancia de un punto a un polígono
- 3. En PostGIS, ¿cómo puedo encontrar todos los puntos dentro de un polígono?
- 4. Ruby Rails Postgis - Encontrar todos los puntos en un polígono
- 5. Comprobar si polígono se encuentra dentro de un polígono
- 6. punto de un polígono y línea
- 7. C# Punto en el polígono
- 8. muestra punto aleatorio en triángulo
- 9. ¿Cómo detectar que un punto está dentro de un Polígono usando Google Maps?
- 10. Algoritmo para generar polígono 2D aleatorio
- 11. Leer puntos de un polígono de geografía en una base de datos PostGIS
- 12. ¿Cómo verificar si un punto (x, y) está dentro de un polígono en el sistema de coordenadas cartesianas?
- 13. Determinando si existe una coordenada dentro de un polígono
- 14. Centrar un polígono dentro de un control de cuadrícula
- 15. hallazgo punto central de un polígono en js
- 16. Polígono toca en más de un punto con shapely
- 17. SQL Server 2008 Spatial: busque un punto en el polígono
- 18. consulta SQL para el punto en el polígono usando PostgreSQL
- 19. Encontrar un rectángulo delimitado dentro de un polígono cóncavo/convexo
- 20. Es un punto dentro o fuera de un polígono que se encuentra en la superficie de un globo
- 21. Cómo determinar si un punto (x, y) está dentro de un polígono definido por una lista de puntos límite
- 22. ¿Generar un número aleatorio dentro del rango?
- 23. Círculo más grande dentro de un polígono no convexo
- 24. Cómo convertir datos de polígono en segmentos de línea usando PostGIS
- 25. Puntos de clúster en PostGIS
- 26. PostGIS: Encontrar puntos dentro de cierto radio desde otros puntos
- 27. Distancia de un punto a un poliedro o de un polígono
- 28. Detectar si CGPoint dentro del polígono
- 29. ¿Encontrando el centroide de un polígono?
- 30. ¿Cómo obtengo un polígono delimitador alrededor de los puntos?
esta pregunta se puede migrar a http://gis.stackexchange.com/ Cómo migrar? –