gpt4 book ai didi

django - GeoDjango,来自谷歌地图的坐标在使用 PointField 的传单上绘制错误

转载 作者:行者123 更新时间:2023-12-04 10:37:14 25 4
gpt4 key购买 nike

请帮我解决这个问题。

class RecievingImages(models.Model):
"""Original and Masked Images"""
name = models.CharField(max_length = 100, unique = True, primary_key=True)
cordinate_X = models.FloatField()
cordinate_Y = models.FloatField()
point = models.PointField(srid=4326, geography=True, default='POINT(0.0 0.0)')

def __str__(self):
return self.name

class Meta:
verbose_name_plural = 'Image Mapping'




我有从谷歌地图 API 获得的坐标
这里的例子
cordinate_X : 21.2166277
cordinate_Y : 72.7763859

从技术上讲,这些坐标是印度古吉拉特邦
actual link of the coordinates

现在要在传单上绘制,我引用此链接将其转换为点场
https://stackoverflow.com/a/48293443/7999665

from django.contrib.gis.geos import Point

for l in RecievingImages.objects.all():
... l.point = Point(x=l.cordinate_X, y=l.cordinate_Y, srid=4326)
... l.save()


现在,当我回到 Django 管理页面时,它在 Sea 的某个地方错误地标记了坐标

After Conversion of Coordinates into Point Field

谢谢你的时间。

问候

更新

经过大量的谷歌搜索后,我发现可能存在使用 srid 的问题,即谷歌地图可能使用“3587”而我使用了“4326”
我试图改变这一点,但我得到了一个错误。
    raise NotSupportedError('PostGIS only supports geography columns with an SRID of 4326.')
django.db.utils.NotSupportedError: PostGIS only supports geography columns with an SRID of 4326.

我使用的数据库是 PostGIS。

最佳答案

我认为你的坐标被交换了。 X是经度,Y是纬度。

您的链接在此处显示坐标:
21°12'59.9"N 72°46'35.0"E。 Google 将纬度放在首位。

试试这个:

cordinate_X : 72.7763859
cordinate_Y : 21.2166277

关于django - GeoDjango,来自谷歌地图的坐标在使用 PointField 的传单上绘制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com