"NotSupportedError("Perimeter can use a non-projected field.")" 이 오류는 일반적으로 Django에서 경계를 계산하기 위해 비투영 필드를 사용하려고 할 때 발생합니다.
DjanGo에는 투영된 필드와 투영되지 않은 필드라는 두 가지 유형의 필드가 있습니다. 투영 필드는 평면 좌표계의 지리 정보를 나타내는 필드이고, 비투영 필드는 타원체 좌표계의 지리 정보를 나타내는 필드입니다.
"NotSupportedError("경계는 비투영 필드를 사용할 수 없습니다.")" 오류가 표시되는 경우, 비투영 필드를 사용하여 둘레를 계산하려고 하기 때문일 수 있습니다. 예를 들어, 투영되지 않은 필드를 사용하여 지리적 그림의 둘레를 계산하는 경우 이 오류가 나타날 수 있습니다.
이 문제를 해결하려면 투영된 필드를 사용하여 둘레를 계산해야 합니다. 예를 들어 원의 둘레를 계산하려면 다음 코드를 사용할 수 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!