私は、明示的な緯度と経度django.contrib.gis.geos.Point
を持つポイントをより適切に作成して処理することを専門としています。
私の現在のコード:
from django.contrib.gis.geos import Point
class LLPoint(Point):
def __init__(self, *args, **kwargs):
lat = kwargs.get('latitude')
lng = kwargs.get('longitude')
if lat and lng:
super(LLPoint, self).__init__(lng, lat)
elif lat or lng:
raise TypeError(u'You must both declare latitude and longitude, '
'not just one of them.')
else:
super(LLPoint, self).__init__(*args, **kwargs)
def __unicode__(self):
c = self.coordinates()
return u'LLPoint Lat: %.5f Lng: %.5f' % (c['latitude'], c['longitude'])
def coordinates(self):
return {
'latitude': self.coords[1],
'longitude': self.coords[0]
}
問題は:
>>> LLPoint(latitude=10.0, longitude=20.0)
<Point object at 0xdeadbeef>
Point
なぜオブジェクトを返すのですか? この方法では、サブクラスで宣言したものは何も使用できません。スタブ クラスで問題を再現しようとすると、うまくいきます。これはおそらく非常に愚かですが、私にはわかりません。