"NotSupportedError("Perimeter cannot use a non-projected field.")" 這個錯誤通常是由於您試圖在Django 中使用一個未投影的欄位計算週長時出現的。
DjanGo 中的欄位有兩種類型:投影欄位和未投影欄位。投影字段是在平面座標系中表示地理資訊的字段,而未投影字段則是在橢球體座標系中表示地理資訊的字段。
如果您看到 "NotSupportedError("Perimeter cannot 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("Perimeter cannot 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
如果您正在使用未投影欄位來計算週長,則需要將這些欄位轉換為投影欄位。例如,如果您想要將一個未投影字段轉換為投影字段,可以使用以下程式碼:
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 對象,並將圓的周長賦值給 circle 欄位:
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(\'Perimeter cannot use a non-projected field.\')的詳細內容。更多資訊請關注PHP中文網其他相關文章!