geodjango在保存功能时错误的srid

时间:2018-05-23 15:13:31

标签: python django geodjango

我尝试从形状文件中读取数据并将其保存到数据库中。这里是我的代码

lyr = ds[0]
for feat in lyr:
    geom_t = feat.geom.transform(wgs84, clone=True)
    print(geom_t.wkt)
    print(feat.geom.wkt)

    name =''
    Twoway='1'

    data = {
        'name': name,
        'Twoway': Twoway,
        'geom': geom_t.wkb
    }
    form = Street_Form(data)
    if form.is_valid():
        savedlocation = form.save()
好吧它保存并且工作正常。在保存到数据库之前,我将一些几何图形打印为wkt,这是结果

  print(geom_t.wkt): LINESTRING (50.9847540637495 35.8384680697353,50.9850968571006 35.8383655346687)

   print(feat.geom.wkt): LINESTRING (50.9847540637495 35.8384680697353,50.9850968571006 35.8383655346687)

正如你所看到的那样EPSG:4326并没有错。 这是我的模特

class str(models.Model):
    geom = models.LineStringField(srid=4326)

但是当我从数据库中读取数据时,它们如下所示

"LINESTRING(0.000457917485762628 0.000321907544087987,0.000457920236524686 0.000321915031075541)"

以上结果来自此查询

select st_astext(geom) from public."app_str"

好几何都是错位的,问题出在哪里?为什么会这样?

0 个答案:

没有答案