Page 785 - NGTU_paper_withoutVideo
P. 785
کیتاموئژ نیون یاهدربراک و اه یروآ نف یلم سنارفنک
geom = GEOSGeometry(p, srid=4326)
geomobj = drawing(geom=geom)
geomobj.save()
geomobj.userOwner.add(user)
return HttpResponse("200OK", content_type='text/html')
else:
return HttpResponse("Access Denied. Eror403", content_type='text/html')
: تاميسرت زا shapefile یجورخ تيلباق ندوزفا
هب طوبرم عبات views.py تمسق رد سپس . دوش لصتم 1 exportSHP عبات ات هب مینک یم هفاضا ار رظن دروم دک urls.py تمسق رد
. مینک یم فیرعت ار exportSHP
def exportSHP(request):
if request.user.is_authenticated():
user = User.objects.get(id=request.user.id)
drawingForUser = drawing.objects.filter(userOwner=user)
directory_for_files = str(uuid.uuid4())
os.mkdir(directory_for_files)
#create shapefiles from geo
driverName = "ESRI Shapefile".encode('utf-8')
driver = ogr.GetDriverByName(driverName)
data_source1 = driver.CreateDataSource(directory_for_files+"/point.shp".encode('utf-8'))
data_source2 = driver.CreateDataSource(directory_for_files+"/linestring.shp".encode('utf-8'))
data_source3 = driver.CreateDataSource(directory_for_files+"/polygon.shp".encode('utf-8'))
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
layer1 = data_source1.CreateLayer("volcanoes".encode('utf-8'), srs, ogr.wkbPoint)
layer2 = data_source2.CreateLayer("volcanoes".encode('utf-8'), srs, ogr.wkbLineString)
layer3 = data_source3.CreateLayer("volcanoes".encode('utf-8'), srs, ogr.wkbPolygon)
geoms = drawingForUser.values_list("geom",flat=True)
for geom in geoms:
feature = ogr.Feature(layer1.GetLayerDefn())
if geom.geom_type == "Point":
point = ogr.CreateGeometryFromWkt(geom.wkt)
feature.SetGeometry(point)
layer1.CreateFeature(feature)
elif geom.geom_type == "LineString":
linestring = ogr.CreateGeometryFromWkt(geom.wkt)
feature.SetGeometry(linestring)
layer2.CreateFeature(feature)
else:
polygon = ogr.CreateGeometryFromWkt(geom.wkt)
feature.SetGeometry(polygon)
layer3.CreateFeature(feature)
data_source1 = data_source2 = feature = point = polygon = linestring = data_source3 = layer1 = layer2 = layer3 =
None
# create zip from directory with same name
1 FtFcaeuF