如何在 GeoDjango 中创建空 LineString

问题描述 投票:0回答:1

当我创建空的

GeoDjango 
时,Django 版本 4.2.6 中最新版本的
LineString
扩展出现问题。相同代码的行为与版本 4.0.10 中不同。默认值似乎已切换为创建具有 3 维而不是之前的 2 维的 Geos 对象。

以下代码根据我使用的 Django 版本返回不同的 WKT 对象。

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

这将返回一个 3 维对象“LINESTRING Z EMPTY”。在 Django 4.0.10 上运行完全相同的代码会创建一个二维对象“LINESTRING EMPTY”。

我有什么明显做错的地方吗?我还运行了稍新版本的 geos-3.12.0 与 3.11.2,但我看不到两组发行说明都描述了这种行为变化。

django geodjango geos
1个回答
0
投票

在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)
© www.soinside.com 2019 - 2024. All rights reserved.