0

geodjangoのポイントオブジェクトのwkt(よく知られているテキスト)が、オブジェクトが初期化されたときとは異なる座標と思われるものを返す理由を誰かが説明できますか?私はそれが私が間違っていることであり、地理ではないことを想像する必要があります。wktは「POINT(-122.432534 37.764021)」のようになりますが、代わりに「POINT(-122.4325340000000040 37.7640209999999996)」のようになります。

この丸めはどこから来ていますか?Location.objects.get(pnt = "POINT(-122.432534 37.764021)")のようなクエリは、(ほんのわずかに)異なるポイントであると見なされるため、実行できないようになっています。

>>> from django.contrib.gis.geos import Point
>>> p = Point(-122.432534,37.764021)
>>> p
<Point object at 0x239c1e4>
>>> p.wkt
'POINT (-122.4325340000000040 37.7640209999999996)'
>>> p.x
-122.432534
>>> p.y
37.764021
4

2 に答える 2

1

これは から来ている可能性が非常に高い__str__ or __repr__です。これらの数値に対して何かを行って (交差積、データベースへの保存)、同じ精度を取得すると、これが確認されるはずです。

乾杯

于 2009-10-09T16:00:04.730 に答える
0

これは、すべての数値をバイナリ形式で表すことができないためです。Python インタープリターで、「1.1」と入力してみてください (1.1000000000000001 として返されます)。同様に、float(0.37765021) = 0.37765020999999999 です。

于 2011-07-03T06:33:27.750 に答える