gpt4 book ai didi

random - Postgis多边形内的随机点

转载 作者:行者123 更新时间:2023-12-03 02:47:54 27 4
gpt4 key购买 nike

如果我在 Postgis 中有一个多边形,我如何找到/计算多边形内的随机点?

最佳答案

@Mike 引用的链接没有代码,但 Dr.JTS 提供了很好的线索:“点密度” map ...“本质上,这涉及创建一组位于给定多边形内的 N 个随机放置的点”。函数执行此操作:输入是多边形,输出是随机点。

这些链接具有相同的 SQL/PostGIS 函数RandomPoint(Geometry):sorokine 2011osgeo.org/postgis/wiki 。第二个链接 (wiki) 更完整,解释并显示了示例,以及一个函数 RandomPointsInPolygon(geometry,integer),它是问题的答案。

扩展solion以输入“每个区域的点密度”,或点之间的平均距离:

 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;

关于random - Postgis多边形内的随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com