如何在GeoDjango中创建空的LineString

zzlelutf  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(112)

当我创建一个空的LineString时,我在Django版本4.2.6中使用最新版本的GeoDjango扩展时遇到了问题。相同的代码与版本4.0.10中的行为不同。默认值似乎切换到创建一个三维的Geos对象,而不是以前的二维。
下面的代码根据我使用的Django版本返回不同的WKT对象。

from django.contrib.gis.geos import LineString
ls = LineString()
ls.wkt

字符串
这将返回一个三维对象“LINESTRING Z EMPTY”。在Django 4.0.10上运行完全相同的代码会创建一个二维对象“LINESTRING EMPTY”。
有什么明显的地方我做错了吗?我也运行一个稍微更新的版本geos-3.12.0与3.11.2,但我看不到任何东西是两套发行说明,描述这种行为的变化。

xwbd5t1u

xwbd5t1u1#

在GeoDjango中,从3.1版本开始,默认支持3D几何。如果你想显式创建一个2D LineString,你可以在创建LineString对象时使用dim参数。设置dim=2来创建一个2D LineString。

from django.contrib.gis.geos import LineString
ls = LineString(dim=2)
print(ls.wkt)

字符串

相关问题