如何解决geoDjango自动更改经度
我正在制作一个基于位置的Web应用程序,为此,我正在使用geoDjango和postgis。问题是每当我尝试在孟加拉国达卡附近存储一些位置(纬度/经度)时,它会自动更改经度。经过一些调试后,我发现,每当经度超过90.00时,geoDjango便将经度保存为89.something。
我的模特:
from django.db import models
from django.contrib.gis.db import models as locationModels
class Advertise(models.Model):
house_name = models.CharField(max_length=100,null=True)
geoLocation = locationModels.PointField(geography=True,null=True)
示例:
from django.contrib.gis.geos import Point
lat,lng = 23.724609,88.882694
pnt = Point(lat,lng)
add = models.Advertise(geoLocation=pnt,house_name='test1')
add.save()
add = models.Advertise.objects.filter(house_name='test1')
add[0].geoLocation.y
的输出为88.882694
如果我将lat,lng
的值更改为23.777976,90.010106
,则add[0].geoLocation.y
的输出将变为89.989894
,但应为90.010106
谁能告诉我我在哪里做错了?
解决方法
您正在交换纬度和经度。您必须先指定经度(x),然后指定纬度(y)。
不幸的是,PostGIS不会抛出错误,而是会尝试解释超出范围的值,例如在地球的另一侧移动或在纬度> 90度时从极点“后退”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。