0

TL;DR:データを DMS 形式で保持するように geodjango を作成するにはどうすればよいですか?


DMS形式の座標を含む外部データソースをロードする単純なdjango(実際にはGeoDjango)アプリを構築しています。

現在、そのファイルをロードしている間、DMS を DD に変換して、そのデータを django モデルの POLYGON フィールドとして保存します。

ただし、出力 (ファイルへのエクスポート) には、 DMS に戻す必要があります。これにより、出力された座標が入力の座標とは少し異なります。これは浮動小数点数の不正確さが原因だと思います...

4

1 に答える 1

1

度、分、秒の情報を維持し、プロパティ デコレータを使用してメソッドでポイント操作のために 10 進数への一方向変換を行うだけです。

from django.db import models

class PolygonPoint(models.Model):
    parent_poly = models.ForeignKey(PolyModel)
    degrees = models.IntegerField()
    minutes = models.IntegerField()
    seconds = models.IntegerField()

    @property
    def point(self):
        """
        Do conversion to point here
        """
        ...
        p = Point(x, y, srid=a)
        return p

または、JSON BLOB でデータを保持し続けます。

class SomeModel(models.Model):
    ...
    dms_points_json = models.TextArea(help_text=u"JSON list of dms polygon points")
    poly = models.PolygonField()

    def populate_poly(self):
        """
        Perform steps to update/populate the PolygonField using 
        dms_points_json blob
        """
        ...
于 2013-02-17T23:23:29.093 に答える