微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GeoDjango:多边形内的路线创建

如何解决GeoDjango:多边形内的路线创建

我目前正在尝试创建一个 Linestring 路线,例如由用户多边形创建的内部蛇。此外,用户选择路线内线之间的宽度。 Example of user selection polygon

基于多边形,我想在其中创建一条路线like this

实际上,我能想到的就是在多边形的第一个点上创建一个圆,在多边形内找到圆的点并从多边形的第一个点到建立点开始 Linestring(我的路线),有什么问题而不是我想要的。

if request.method == 'POST':
        form = AreaForm(request.POST)

        if form.is_valid():
            form.save(commit=False)
            first_point = geos.Point(form.instance.field_location[0][0],srid=4326)
            first_point.transform(6347)
            circle = first_point.buffer(10) #10 - distance between lines,selected by user
            first_point.transform(4326)
            circle.transform(4326)

            point_inside_polygon = False
            while point_inside_polygon == False:
                point = random.choices([geos.Point(i,srid=4326) for i in circle[0]])[0]
                point_inside_polygon = form.instance.field_location.contains(point)
 
            form.instance.collecting_route = geos.Linestring([first_point,point],srid=4326)
            form.save()

我不知道如何实现我想要的路线创建,有什么想法吗?可能吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。