ホームページ >バックエンド開発 >Python チュートリアル >解決策: django NotSupportedError(\'境界は非投影フィールドを使用できません。\')
"NotSupportedError("境界線は非投影フィールドを使用できません。")" このエラーは通常、Django を実行しようとしたことが原因で発生します。 非投影フィールドを使用して周囲を計算するときに発生します。
DjanGo には、投影されたフィールドと投影されていないフィールドの 2 種類のフィールドがあります。投影フィールドは平面座標系で地理情報を表すフィールドであり、非投影フィールドは楕円体座標系で地理情報を表すフィールドです。
「NotSupportedError("Perimeter can use a non-projected field.")」エラーが表示される場合は、非投影フィールドを使用して周囲を計算しようとしている可能性があります。たとえば、非投影フィールドを使用して地理的図形の周囲長を計算すると、このエラーが発生する可能性があります。
これを修正するには、投影されたフィールドを使用して周長を計算する必要があります。たとえば、円の円周を計算したい場合は、次のコードを使用できます:
from django.contrib.GIS.measure import D # Assume that "circle" is a projected field of type Circle perimeter = circle.perimeter
この例がお役に立てば幸いです。
「NotSupportedError("境界線は非投影フィールドを使用できません。")」エラーを解決するには、境界線の計算に投影フィールドが使用されていることを確認する必要があります。 。
投影フィールドは、平面座標系で地理情報を表すフィールドであり、周長の計算に使用できます。たとえば、円の円周を計算したい場合は、次のコードを使用できます:
from django.contrib.GIS.measure import D # Assume that "circle" is a projected field of type Circle perimeter = circle.perimeter
非投影フィールドを使用して周囲を計算している場合は、これらのフィールドを投影フィールドに変換する必要があります。たとえば、非投影フィールドを投影フィールドに変換する場合は、次のコードを使用できます:
from django.contrib.gis.measure import D # Assume that "circle" is a non-projected field of type Circle perimeter = circle.transfORM(4326, clone=True).perimeter
この情報がお役に立てば幸いです。
はい、例を示します:
次のような円形フィールドを含む Django モデルがあるとします:
from django.db import models from django.contrib.gis.db import models as gis_models class MyModel(models.Model): circle = gis_models.CircleField()
次に、次のコードを使用して新しい MyModel オブジェクトを作成し、円の円周を円フィールドに割り当てることができます:
from django.contrib.gis.geos import Point from django.contrib.gis.measure import D # Create a point point = Point(x=1.0, y=2.0) # Create a circle with radius of 10 meters circle = point.buffer(D(m=10)) # Create a new MyModel object and set the circle field my_model = MyModel(circle=circle) my_model.save()
上記のコードでは、Point クラスを使用して円の中心を作成し、buffer() メソッドを使用して円を作成していることに注意してください。 D クラスは、円の半径を指定するためにも使用されます。
この例がお役に立てば幸いです。
以上が解決策: django NotSupportedError(\'境界は非投影フィールドを使用できません。\')の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。