ジオ ポイントの正しいデータ型が必要でした。
google map APIで取得して表示するので、
- 42.761819,11.104863
- 41.508577、-101.953125
使用事例:
- ユーザーが地図をクリック
- djangoはこの点を追加データで保存します
- 次に訪問するジャンゴで、このポイントを地図上に表示します
したがって、ポイント間の距離などのハックはありません。
DB: ポストグル 8
ジャンゴ: 1.4
緯度と経度を保存するようです。これにはDecimalFieldを使用し、各数値を個別に保存します。
DecimalField に関するdjangoのドキュメントから:
DecimalField.max_digits
数値で許可される最大桁数。この数は decimal_places 以上である必要があることに注意してください。
DecimalField.decimal_places
数値とともに格納する小数点以下の桁数。
正確なデータ型と精度を適切に選択するには、次のことを考慮する必要があります。
ところで、理解を深めるために、計算がどのように行われるか (Python コード) を知っておくとよいでしょう。
def deg_to_dms(deg):
d = int(deg)
md = abs(deg - d) * 60
m = int(md)
sd = (md - m) * 60
return [d, m, sd]
def decimal(deg,min,sec):
if deg < 0:
dec= -1.0 * deg + 1.0 * min/60.0 + 1.0 * sec/3600.0
return -1.0 * dec
else:
dec=1.0 * deg + 1.0 * min/60.0 + 1.0 * sec/3600.0;
return dec
私はdjangoのセットアップで経度と緯度を使用しています。
私のモデルには以下が含まれます:
long_position = models.DecimalField (max_digits=8, decimal_places=3)
lat_position = models.DecimalField (max_digits=8, decimal_places=3)
精度を高めるには、decimal_places をより多くしたい場合があります。
Google Map API メソッドで表示する場合は、モデルを参照し、Python コードを記述して次のように出力します。
output = some_long_position + "," + some_lati_position