kml ファイルを geoDjango アプリケーションにインポートする cmd ライン ルーチンを作成しました。これは、ローカルに保存された KML ファイル パスを (データソース オブジェクトを使用して) フィードすると正常に動作します。
今、同じことを達成するために、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