在多边形的角落内获取随机点?

3

我不明白你的意思,你想在多边形边界内生成一个点吗? - Nicola Gallazzi
1
是的,我想在多边形内添加标记?我有纬度和经度坐标。 - creativecoder
1个回答

4

在Python中,您可以在定义的多边形内生成随机坐标,如下所示:

import numpy as np
import random

from shapely.geometry import Polygon, Point


poly = Polygon([(23.789642, 90.354714), (23.789603, 90.403000), (23.767688, 90.403597),(23.766510, 90.355448)])

def random_points_within(poly, num_points):
    min_x, min_y, max_x, max_y = poly.bounds

    points = []

    while len(points) < num_points:
        random_point = Point([random.uniform(min_x, max_x), random.uniform(min_y, max_y)])
        if (random_point.within(poly)):
            points.append(random_point)

    return points


points = random_points_within(poly,1000)

for p in points:
    print(p.x,",",p.y)

好的解决方案,但如果n_points >= 1000,则效率低下。也许有一些额外的限制条件? - Олег Місько

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接