我编写了一个 cmd 行例程来将 kml 文件导入 geoDjango 应用程序,当您为其提供本地保存的 KML 文件路径(使用数据源对象)时,它可以正常工作。
现在我正在编写一个网络文件上传对话框,以实现同样的目的。这是我拥有的代码的开头,问题是 GDAL DataSource 对象似乎不理解 Djangos UploadedFile 格式。它保存在内存中,而不是预期的文件路径。
将 UploadedFile 转换为普通文件并通过路径访问它的最佳策略是什么?我不想在处理后保留文件。
def createFeatureSet(request):
if request.method == 'POST':
inMemoryFile = request.FILES['myfile']
name = inMemoryFile.name
POSTGIS_SRID = 900913
ds = DataSource(inMemoryFile) #This line doesnt work!!!
for layer in ds:
if layer.geom_type in (OGRGeomType('Point'), OGRGeomType('Point25D'), OGRGeomType('MultiPoint'), OGRGeomType('MultiPoint25D')):
layerGeomType = OGRGeomType('MultiPoint').django
elif layer.geom_type in (OGRGeomType('LineString'),OGRGeomType('LineString25D'), OGRGeomType('MultiLineString'), OGRGeomType('MultiLineString25D')):
layerGeomType = OGRGeomType('MultiLineString').django
elif layer.geom_type in (OGRGeomType('Polygon'), OGRGeomType('Polygon25D'), OGRGeomType('MultiPolygon'), OGRGeomType('MultiPolygon25D')):
layerGeomType = OGRGeomType('MultiPolygon').django