解决方案:django TypeError('Invalid SRS type "%s"' % srs_type)
发布时间:2023-03-01 13:29:51
报错的原因这个错误通常是由于在调用 Django 的函数时传入了无效的参数导致的。例如解决办法就是确保传入的坐标系类型是有效的。你可以在[GDAL 官方文档中查看支持的坐标系类型。这是一个使用函数创建 WGS84 坐标系的例子使用整数创建坐标系使用字符串创建坐标系使用 from_epsg 静态方法创建坐标系这是一个使用函数创建 Web Mercator 坐标系的例子使用整数创建坐标系使用字符串创建坐标系使用 from_epsg 静态方法创建坐标系你可以在[GDAL 官方文档中查看支持的坐标系类型。
报错的原因
这个错误通常是由于在调用 Django 的 `SpatialReference` 函数时传入了无效的参数导致的。
举个例子,如果你在调用 `SpatialReference` 函数时传入了一个不支持的坐标系类型,就会看到这个错误。
例如:
from django.contrib.gis.gdal import SpatialReference
srs = SpatialReference('invalid_srs')
解决办法就是确保传入的坐标系类型是有效的。你可以在[GDAL 官方文档](https://gdal.org/user/supported_rasters.html)中查看支持的坐标系类型。
如何解决
要解决这个问题,你需要确保在调用 `SpatialReference` 函数时传入的参数是有效的坐标系类型。
例如,如果你想使用 WGS84 坐标系,你可以这样做:
from django.contrib.gis.gdal import SpatialReference
srs = SpatialReference(4326)
或者,你也可以使用字符串来指定坐标系类型:
from django.contrib.gis.gdal import SpatialReference
srs = SpatialReference('EPSG:4326')
另外,你还可以使用 `SpatialReference` 类的 `from_epsg` 静态方法来创建坐标系类型:
from django.contrib.gis.gdal import SpatialReference
srs = SpatialReference.from_epsg(4326)
你可以在[GDAL 官方文档](https://gdal.org/user/supported_rasters.html)中查看支持的坐标系类型。
使用例子
当然有!这是一个使用 `SpatialReference` 函数创建 WGS84 坐标系的例子:
from django.contrib.gis.gdal import SpatialReference
# 使用整数创建坐标系
srs = SpatialReference(4326)
print(srs) # Output: EPSG:4326
# 使用字符串创建坐标系
srs = SpatialReference('EPSG:4326')
print(srs) # Output: EPSG:4326
# 使用 from_epsg 静态方法创建坐标系
srs = SpatialReference.from_epsg(4326)
print(srs) # Output: EPSG:4326
这是一个使用 `SpatialReference` 函数创建 Web Mercator 坐标系的例子:
from django.contrib.gis.gdal import SpatialReference
# 使用整数创建坐标系
srs = SpatialReference(3857)
print(srs) # Output: EPSG:3857
# 使用字符串创建坐标系
srs = SpatialReference('EPSG:3857')
print(srs) # Output: EPSG:3857
# 使用 from_epsg 静态方法创建坐标系
srs = SpatialReference.from_epsg(3857)
print(srs) # Output: EPSG:3857
你可以在[GDAL 官方文档](https://gdal.org/user/supported_rasters.html)中查看支持的坐标系类型。