首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多面体区域划分为子区域

将多面体区域划分为子区域
EN

Stack Overflow用户
提问于 2017-11-24 18:32:42
回答 1查看 589关注 0票数 0

我正在开发一个应用程序,其中有shapefiles (.shp)。

我已经将这些形状读取到我的PostgreSQL数据库中,我可以在Google Map上显示这些形状坐标。

现在我有了一个用例,我需要将这些LGA (地方治理区域)划分为子区域(如将一个LGA划分为10 km2的子区域)。

有谁知道如何使用Python/Django/GeoDjango来做这件事吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-24 21:52:07

由于您使用的是PostgreSQL和PostGIS,因此可以利用ST_SplitST_Dump数据库函数来分割一种类型的多边形。

  1. 使用另一个线程中的方法:How to make/use a custom database function in Django (免责声明:,这是我写的一个问答)来包装这些数据库方法供Django使用:

from import GeoFunc class SplitGeom(GeoFunc):function='ST_Split‘class DumpGeom(GeoFunc):function将修改ST_Split文档中提供的示例,假设您有一个名为MyModel的模型,该模型具有一个名为lga的多边形字段和一个不同的几何体,该模型包含一条直线/多线(或另一个适合您的几何体),可用作“刀片”来剪切/分割特定的多边形。让我们称这行为blade

blade = LineString((lon_1,lat_1),(lon_2,lat_2))

  • 使用annotate的包装方法将包含创建的多边形的字段添加到MyModel对象中:

MyModel.objects.annotate( subareas=DumpGeom( SplitGeom('lga',刀片)

重要提示:这不是方法,它是一种方法,可以帮助你掌握使用GeoDjango能做什么的逻辑。

如何将多边形拆分为PostgreSQL的另一个示例:http://www.gistutor.com/postgresqlpostgis/6-advanced-postgresqlpostgis-tutorials/21-how-to-cut-or-split-a-polygon-using-a-line-with-postgis.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47471324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档