處理上傳的KML文件我寫的CMD線例行導入KML文件到GeoDjango內置應用程序,當你給它本地保存的KML文件路徑(使用數據源對象)的正常工作。如何GeoDjango內置
現在我正在編寫一個web文件上傳對話框,以實現同樣的目的。這是我有的代碼的開始,問題是,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
好吧用tempfile制定了一個工作解決方案,如下所示: – petzlux