Skip to main content
 首页 » 编程设计

python之在 GeoDjango 界面中显示 PointFields

2024年11月01日37yjmyzz

我的 PointFields 在 GeoDjango 的管理界面中显示错误。

这是我的模型:

模型.py

1 class FOO(models.Model): 
2     name = models.CharField(max_length=100) 
3     point = models.PointField(srid=4326) 
5     objects = models.GeoManager() 

但是当我创建一个点时:

from django.contrib.gis.geos import Point 
p = Point(43.620416,7.065491) 
foo = FOO(.. , point=p) 
foo.save() 

它在数据库中的格式不正确,在此示例中,它在 OSM 的显示上类似于 (4856153.76879, 788079.64711),也就是说与我输入的内容完全不同。有谁知道如何解释这种行为?

提前致谢

请您参考如下方法:

我猜你调换了纬度和经度。查看您提供的坐标,我假设您希望纬度为 43.620416,经度为 7.065491,因此该点位于法国。然而,according to the doc , GeoDjango 期望第一个值是经度,第二个值是纬度。

切换这两个坐标可能导致 GeoDjqngo 迷失了您提供的值。 (4856153.76879, 788079.64711) 可能是您给出的观点的某种内部表示。