mirror of
https://github.com/ARUP-CAS/aiscr-qgis-amcr-viewer.git
synced 2026-06-19 04:12:55 +02:00
Merge pull request #16 from ARUP-CAS/pian-downloading-logic-fix
Fixed PIAN counting and downloading logic
This commit is contained in:
+42
-36
@@ -79,6 +79,7 @@ def load_amcr_data(canvas, bb, filters=None):
|
|||||||
MAX_LIMIT = 20000
|
MAX_LIMIT = 20000
|
||||||
|
|
||||||
seen_ids = set()
|
seen_ids = set()
|
||||||
|
target_pian_ids_count = 0
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
base_params['rows'] = BATCH_AKCE
|
base_params['rows'] = BATCH_AKCE
|
||||||
@@ -198,7 +199,10 @@ def load_amcr_data(canvas, bb, filters=None):
|
|||||||
dj_pian_value = dj_pian.get('id')
|
dj_pian_value = dj_pian.get('id')
|
||||||
if dj_pian_value:
|
if dj_pian_value:
|
||||||
target_pian_ids.add(dj_pian_value)
|
target_pian_ids.add(dj_pian_value)
|
||||||
pian_lookup[dj_pian_value] = dj_meta
|
target_pian_ids_count = target_pian_ids_count+1
|
||||||
|
if dj_pian_value not in pian_lookup:
|
||||||
|
pian_lookup[dj_pian_value] = []
|
||||||
|
pian_lookup[dj_pian_value].append(dj_meta)
|
||||||
|
|
||||||
if not target_pian_ids:
|
if not target_pian_ids:
|
||||||
iface.messageBar().pushMessage("AMCR", f"Nalezeno {len(docs_akce)} akcí, ale žádná nemá geometrii.", level=1)
|
iface.messageBar().pushMessage("AMCR", f"Nalezeno {len(docs_akce)} akcí, ale žádná nemá geometrii.", level=1)
|
||||||
@@ -213,7 +217,7 @@ def load_amcr_data(canvas, bb, filters=None):
|
|||||||
docs_pian = []
|
docs_pian = []
|
||||||
BATCH_PIAN = 50
|
BATCH_PIAN = 50
|
||||||
|
|
||||||
iface.messageBar().pushMessage("AMCR", f"Akcí: {len(docs_akce)} (z toho {actions_with_geom} s mapou). Stahuji {total_pians} geometrií...", level=1)
|
iface.messageBar().pushMessage("AMCR", f"Akcí: {len(docs_akce)} (z toho {actions_with_geom} s mapou). Stahuji {total_pians} unikátních geometrií, vykresluji {target_pian_ids_count} geometrií...", level=1)
|
||||||
|
|
||||||
# Seznam polí pro PIAN
|
# Seznam polí pro PIAN
|
||||||
fl_pian = ["ident_cely", "pian_typ", "pian_chranene_udaje", "pian_presnost"]
|
fl_pian = ["ident_cely", "pian_typ", "pian_chranene_udaje", "pian_presnost"]
|
||||||
@@ -284,7 +288,7 @@ def load_amcr_data(canvas, bb, filters=None):
|
|||||||
if pid not in pian_lookup:
|
if pid not in pian_lookup:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
meta = pian_lookup[pid]
|
metas = pian_lookup[pid]
|
||||||
|
|
||||||
# Geometry processing
|
# Geometry processing
|
||||||
raw = doc.get('pian_chranene_udaje')
|
raw = doc.get('pian_chranene_udaje')
|
||||||
@@ -308,39 +312,41 @@ def load_amcr_data(canvas, bb, filters=None):
|
|||||||
if wkt:
|
if wkt:
|
||||||
geom = QgsGeometry.fromWkt(wkt)
|
geom = QgsGeometry.fromWkt(wkt)
|
||||||
if geom.isGeosValid():
|
if geom.isGeosValid():
|
||||||
feat = QgsFeature()
|
|
||||||
feat.setGeometry(geom)
|
for meta in metas:
|
||||||
feat.setAttributes([
|
feat = QgsFeature()
|
||||||
pid,
|
feat.setGeometry(geom)
|
||||||
pian_presnost,
|
feat.setAttributes([
|
||||||
pian_typ,
|
pid,
|
||||||
meta['dj_id'],
|
pian_presnost,
|
||||||
meta['dj_typ_value'],
|
pian_typ,
|
||||||
meta['loc'],
|
meta['dj_id'],
|
||||||
meta['ident_cely'],
|
meta['dj_typ_value'],
|
||||||
"https://digiarchiv.aiscr.cz/id/" + meta['ident_cely'],
|
meta['loc'],
|
||||||
meta['az_okres'],
|
meta['ident_cely'],
|
||||||
meta['katastr'],
|
"https://digiarchiv.aiscr.cz/id/" + meta['ident_cely'],
|
||||||
meta['dalsi_katastr'],
|
meta['az_okres'],
|
||||||
meta['akce_hlavni_vedouci'],
|
meta['katastr'],
|
||||||
meta['akce_organizace'],
|
meta['dalsi_katastr'],
|
||||||
meta['akce_specifikace_data'],
|
meta['akce_hlavni_vedouci'],
|
||||||
meta['akce_datum_zahajeni'],
|
meta['akce_organizace'],
|
||||||
meta['akce_datum_ukonceni'],
|
meta['akce_specifikace_data'],
|
||||||
meta['akce_hlavni_typ'],
|
meta['akce_datum_zahajeni'],
|
||||||
meta['akce_vedlejsi_typ'],
|
meta['akce_datum_ukonceni'],
|
||||||
meta['dj_negativni'],
|
meta['akce_hlavni_typ'],
|
||||||
meta['lokalizace_okolnosti'],
|
meta['akce_vedlejsi_typ'],
|
||||||
meta['akce_je_nz'],
|
meta['dj_negativni'],
|
||||||
meta['pristupnost']
|
meta['lokalizace_okolnosti'],
|
||||||
])
|
meta['akce_je_nz'],
|
||||||
t = geom.type()
|
meta['pristupnost']
|
||||||
if t == QgsWkbTypes.PolygonGeometry:
|
])
|
||||||
feats_p.append(feat)
|
t = geom.type()
|
||||||
elif t == QgsWkbTypes.LineGeometry:
|
if t == QgsWkbTypes.PolygonGeometry:
|
||||||
feats_l.append(feat)
|
feats_p.append(feat)
|
||||||
elif t == QgsWkbTypes.PointGeometry:
|
elif t == QgsWkbTypes.LineGeometry:
|
||||||
feats_pt.append(feat)
|
feats_l.append(feat)
|
||||||
|
elif t == QgsWkbTypes.PointGeometry:
|
||||||
|
feats_pt.append(feat)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
print(f"Chyba při tvorbě feature: {ex}")
|
print(f"Chyba při tvorbě feature: {ex}")
|
||||||
pass
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user