Compare commits
2 commits
095161872d
...
cd3f3999cb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd3f3999cb | ||
|
|
3c8dcedccc |
2 changed files with 0 additions and 1028 deletions
|
|
@ -1,517 +0,0 @@
|
||||||
"""
|
|
||||||
Management command to seed the 11 Bollard Installations (ITSBollardSystem)
|
|
||||||
and 8 CCTV Cameras (ITSGeoAsset) at Rond-point Schuman and Korte Wetstraat,
|
|
||||||
based on the official POLBRU-approved plan from 'draft_fiche reflex bollards Schuman_20261006.docx'.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import json
|
|
||||||
from django.core.management.base import BaseCommand
|
|
||||||
from django.contrib.gis.geos import LineString, Point, Polygon, MultiPolygon
|
|
||||||
from django.db import transaction
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
|
||||||
|
|
||||||
from common.models import Thematic
|
|
||||||
from assets.models import (
|
|
||||||
AssetCategory,
|
|
||||||
ITSAssetModel,
|
|
||||||
ITSLocation,
|
|
||||||
ITSGeoAsset,
|
|
||||||
ITSBollardSystem,
|
|
||||||
ITSBollardSystemAsset,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
|
||||||
help = "Crée ou met à jour les 11 installations de bollards et les 8 caméras CCTV du rond-point Schuman."
|
|
||||||
|
|
||||||
def add_arguments(self, parser):
|
|
||||||
parser.add_argument(
|
|
||||||
'--dry-run',
|
|
||||||
action='store_true',
|
|
||||||
help="Simule l'exécution sans enregistrer en base de données.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
'--export-geojson',
|
|
||||||
type=str,
|
|
||||||
help="Exporte les entités générées dans un fichier GeoJSON (ex: schuman_assets.geojson).",
|
|
||||||
)
|
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
|
||||||
dry_run = options.get('dry_run', False)
|
|
||||||
geojson_path = options.get('export_geojson')
|
|
||||||
|
|
||||||
self.stdout.write(self.style.MIGRATE_HEADING("=== Déploiement des Assets Bollards & CCTV Schuman ==="))
|
|
||||||
|
|
||||||
if dry_run:
|
|
||||||
self.stdout.write(self.style.WARNING("[ATTENTION] Mode DRY-RUN actif : aucune modification ne sera enregistree en base."))
|
|
||||||
|
|
||||||
# ---------------------------------------------------------
|
|
||||||
# 1. Données de référence géographiques et attributaires
|
|
||||||
# ---------------------------------------------------------
|
|
||||||
# SRID: 3812 (Belgian Lambert 2008)
|
|
||||||
bollards_data = [
|
|
||||||
{
|
|
||||||
"code": "WET_235",
|
|
||||||
"name_fr": "Bornes Schuman - Korte Wetstraat n°235",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Korte Wetstraat nr. 235",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 5.0,
|
|
||||||
"coords_3812": [(651198.5, 670158.0), (651201.5, 670163.0)],
|
|
||||||
"description": "Voie sud Korte Wetstraat face au n°235 en direction du Cinquantenaire",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "WET_SIAMU",
|
|
||||||
"name_fr": "Bornes Schuman - Korte Wetstraat SIAMU",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Korte Wetstraat SIAMU",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width": 7.5,
|
|
||||||
"coords_3812": [(651165.0, 670172.5), (651168.5, 670180.0)],
|
|
||||||
"description": "Voie nord Korte Wetstraat (accès prioritaire secours SIAMU)",
|
|
||||||
"plots_count": 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "EEAS_INT",
|
|
||||||
"name_fr": "Bornes Schuman - EEAS Intérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - EED Binnen",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width": 6.0,
|
|
||||||
"coords_3812": [(651090.0, 670222.0), (651090.0, 670228.0)],
|
|
||||||
"description": "Esplanade piétonne est, traverse intérieure près de la canopée",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "EEAS_EXT",
|
|
||||||
"name_fr": "Bornes Schuman - EEAS Extérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - EED Buiten",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width": 6.0,
|
|
||||||
"coords_3812": [(651125.0, 670222.0), (651125.0, 670228.0)],
|
|
||||||
"description": "Esplanade piétonne est, traverse extérieure face au bâtiment Capital / EEAS",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "BERL_EXT",
|
|
||||||
"name_fr": "Bornes Schuman - Berlaymont Extérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Berlaymont Buiten",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 8.0,
|
|
||||||
"coords_3812": [(650936.0, 670273.0), (650933.0, 670281.0)],
|
|
||||||
"description": "Chaussée sortie Schuman vers Rue de la Loi direction centre (traverse extérieure)",
|
|
||||||
"plots_count": 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "BERL_INT",
|
|
||||||
"name_fr": "Bornes Schuman - Berlaymont Intérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Berlaymont Binnen",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 8.0,
|
|
||||||
"coords_3812": [(650956.0, 670267.0), (650953.0, 670275.0)],
|
|
||||||
"description": "Chaussée sortie Schuman vers Rue de la Loi direction centre (traverse intérieure)",
|
|
||||||
"plots_count": 4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "FROI_OUT",
|
|
||||||
"name_fr": "Bornes Schuman - Froissart Sortie",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Froissart Uitrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 4.5,
|
|
||||||
"coords_3812": [(651027.0, 670185.0), (651031.0, 670183.0)],
|
|
||||||
"description": "Voie de sortie du rond-point vers la Rue Froissart (voie ouest)",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "FROI_IN",
|
|
||||||
"name_fr": "Bornes Schuman - Froissart Entrée",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Froissart Inrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 4.5,
|
|
||||||
"coords_3812": [(651032.5, 670189.0), (651036.5, 670186.5)],
|
|
||||||
"description": "Voie d'entrée dans le rond-point depuis la Rue Froissart (voie est)",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "OUD_OUT",
|
|
||||||
"name_fr": "Bornes Schuman - Auderghem Sortie",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Oudergem Uitrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 4.5,
|
|
||||||
"coords_3812": [(651082.0, 670160.0), (651086.0, 670161.5)],
|
|
||||||
"description": "Voie de sortie du rond-point vers l'Avenue d'Auderghem (voie ouest)",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "OUD_IN",
|
|
||||||
"name_fr": "Bornes Schuman - Auderghem Entrée",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Oudergem Inrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width": 4.5,
|
|
||||||
"coords_3812": [(651087.5, 670161.8), (651092.0, 670163.5)],
|
|
||||||
"description": "Voie d'entrée dans le rond-point depuis l'Avenue d'Auderghem (voie est)",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "J_LIPS",
|
|
||||||
"name_fr": "Bornes Schuman - Justus Lipsius",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Justus Lipsius",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width": 5.5,
|
|
||||||
"coords_3812": [(650996.0, 670226.0), (651000.0, 670231.0)],
|
|
||||||
"description": "Esplanade piétonne ouest en face du bâtiment Justus Lipsius",
|
|
||||||
"plots_count": 2,
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
cameras_data = [
|
|
||||||
{
|
|
||||||
"code": "CAM-N23-BLIJDE-INKOMSTEN",
|
|
||||||
"name_fr": "CCTV N23 - Blijde Inkomsten",
|
|
||||||
"name_nl": "CCTV N23 - Blijde Inkomst",
|
|
||||||
"coords_3812": (651218.0, 670163.0),
|
|
||||||
"target_systems": ["WET_235", "WET_SIAMU"],
|
|
||||||
"description": "Caméra CCTV carrefour N23 / Blijde Inkomst avec vue sur bollards WET_235 et WET_SIAMU",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-EEAS",
|
|
||||||
"name_fr": "CCTV Schuman - EEAS",
|
|
||||||
"name_nl": "CCTV Schuman - EED",
|
|
||||||
"coords_3812": (651085.0, 670215.0),
|
|
||||||
"target_systems": ["EEAS_INT", "EEAS_EXT"],
|
|
||||||
"description": "Caméra CCTV esplanade est avec vue sur bollards EEAS_INT et EEAS_EXT",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-BERLAYMONT",
|
|
||||||
"name_fr": "CCTV Schuman - Berlaymont",
|
|
||||||
"name_nl": "CCTV Schuman - Berlaymont",
|
|
||||||
"coords_3812": (650965.0, 670260.0),
|
|
||||||
"target_systems": ["BERL_INT", "BERL_EXT"],
|
|
||||||
"description": "Caméra CCTV nord-ouest avec vue sur bollards BERL_INT et BERL_EXT",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-LIPSIUS",
|
|
||||||
"name_fr": "CCTV Schuman - Lipsius",
|
|
||||||
"name_nl": "CCTV Schuman - Lipsius",
|
|
||||||
"coords_3812": (650995.0, 670223.0),
|
|
||||||
"target_systems": ["J_LIPS"],
|
|
||||||
"description": "Caméra CCTV ouest avec vue sur bollards J_LIPS (Justus Lipsius)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-FROISSART",
|
|
||||||
"name_fr": "CCTV Schuman - Froissart",
|
|
||||||
"name_nl": "CCTV Schuman - Froissart",
|
|
||||||
"coords_3812": (651040.0, 670198.0),
|
|
||||||
"target_systems": ["FROI_IN", "FROI_OUT"],
|
|
||||||
"description": "Caméra CCTV sud-ouest avec vue sur bollards FROI_IN et FROI_OUT",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-OUDERGEM",
|
|
||||||
"name_fr": "CCTV Schuman - Oudergem",
|
|
||||||
"name_nl": "CCTV Schuman - Oudergem",
|
|
||||||
"coords_3812": (651082.0, 670190.0),
|
|
||||||
"target_systems": ["OUD_IN", "OUD_OUT"],
|
|
||||||
"description": "Caméra CCTV sud avec vue sur bollards OUD_IN et OUD_OUT",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-KORTENBERG",
|
|
||||||
"name_fr": "CCTV Schuman - Kortenberg",
|
|
||||||
"name_nl": "CCTV Schuman - Kortenberg",
|
|
||||||
"coords_3812": (651095.0, 670250.0),
|
|
||||||
"target_systems": [],
|
|
||||||
"description": "Caméra CCTV nord-est avec vue sur l'Avenue de Cortenbergh / Kortenberglaan",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": "CAM-SCHUMAN-KLEINE-WETSTRAAT",
|
|
||||||
"name_fr": "CCTV Schuman - Kleine Wetstraat",
|
|
||||||
"name_nl": "CCTV Schuman - Korte Wetstraat",
|
|
||||||
"coords_3812": (651105.0, 670205.0),
|
|
||||||
"target_systems": ["WET_SIAMU", "WET_235"],
|
|
||||||
"description": "Caméra CCTV est avec vue sur la Korte Wetstraat vers l'est",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
# Export GeoJSON optionnel
|
|
||||||
if geojson_path:
|
|
||||||
self.export_geojson(bollards_data, cameras_data, geojson_path)
|
|
||||||
|
|
||||||
if dry_run:
|
|
||||||
self.stdout.write(self.style.SUCCESS(
|
|
||||||
f"[OK] Simulation terminee : {len(bollards_data)} bollards et {len(cameras_data)} cameras verifies."
|
|
||||||
))
|
|
||||||
return
|
|
||||||
|
|
||||||
# ---------------------------------------------------------
|
|
||||||
# 2. Exécution des créations / mises à jour en DB
|
|
||||||
# ---------------------------------------------------------
|
|
||||||
with transaction.atomic():
|
|
||||||
# A) Thématique ITS
|
|
||||||
thematic_its, _ = Thematic.objects.get_or_create(
|
|
||||||
code='its',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Systèmes de Transport Intelligents (ITS)',
|
|
||||||
'name_nl': 'Intelligente Transportsystemen (ITS)',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# B) Catégories d'assets
|
|
||||||
ct_bollard_system = ContentType.objects.get_for_model(ITSBollardSystem)
|
|
||||||
ct_geo_asset = ContentType.objects.get_for_model(ITSGeoAsset)
|
|
||||||
|
|
||||||
cat_bollards, _ = AssetCategory.objects.update_or_create(
|
|
||||||
code='ITS_BOLLARDS',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Systèmes de bornes escamotables',
|
|
||||||
'name_nl': 'Verzinkbare palen systemen',
|
|
||||||
'thematic': thematic_its,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
cat_bollards.allowed_models.add(ct_bollard_system)
|
|
||||||
|
|
||||||
cat_cctv, _ = AssetCategory.objects.update_or_create(
|
|
||||||
code='ITS_CCTV',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Caméras de surveillance (CCTV)',
|
|
||||||
'name_nl': "CCTV-bewakingscamera's",
|
|
||||||
'thematic': thematic_its,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
cat_cctv.allowed_models.add(ct_geo_asset)
|
|
||||||
|
|
||||||
# C) Modèles de matériel (ITSAssetModel)
|
|
||||||
model_bollards, _ = ITSAssetModel.objects.update_or_create(
|
|
||||||
code='MODEL_BOLLARD_SYSTEM_SCHUMAN',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Système de bornes escamotables Schuman',
|
|
||||||
'name_nl': 'Verzinkbare palen systeem Schuman',
|
|
||||||
'brand': 'Lowist',
|
|
||||||
'category': cat_bollards,
|
|
||||||
'description': 'Système de bornes escamotables automatisées sur rail coulissant au sol (Beliris / Lowist).',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
model_camera, _ = ITSAssetModel.objects.update_or_create(
|
|
||||||
code='MODEL_CCTV_CAMERA_SCHUMAN',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Caméra CCTV Schuman (Genetec/MANBRU)',
|
|
||||||
'name_nl': 'CCTV-camera Schuman (Genetec/MANBRU)',
|
|
||||||
'brand': 'Genetec / MANBRU',
|
|
||||||
'category': cat_cctv,
|
|
||||||
'description': 'Caméra de vidéosurveillance urbaine haute définition connectée au réseau MANBRU.',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# D) Localisation ITS Schuman (ITSLocation)
|
|
||||||
# Périmètre Schuman sous forme de polygone Lambert 2008
|
|
||||||
schuman_poly = Polygon((
|
|
||||||
(650880.0, 670260.0),
|
|
||||||
(650940.0, 670310.0),
|
|
||||||
(651120.0, 670300.0),
|
|
||||||
(651260.0, 670180.0),
|
|
||||||
(651230.0, 670130.0),
|
|
||||||
(651070.0, 670140.0),
|
|
||||||
(651000.0, 670170.0),
|
|
||||||
(650880.0, 670260.0),
|
|
||||||
), srid=3812)
|
|
||||||
schuman_multipoly = MultiPolygon([schuman_poly], srid=3812)
|
|
||||||
|
|
||||||
loc_schuman, _ = ITSLocation.objects.update_or_create(
|
|
||||||
code='LOC-SCHUMAN',
|
|
||||||
defaults={
|
|
||||||
'name_fr': 'Rond-point Robert Schuman et Korte Wetstraat',
|
|
||||||
'name_nl': 'Robert Schumanplein en Korte Wetstraat',
|
|
||||||
'is_main_location': True,
|
|
||||||
'geom': schuman_multipoly,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
self.stdout.write(f"[INFO] Localisation ITS prete : {loc_schuman}")
|
|
||||||
|
|
||||||
# E) Création des 11 ITSBollardSystem
|
|
||||||
created_bollards = 0
|
|
||||||
updated_bollards = 0
|
|
||||||
bollard_system_objs = {}
|
|
||||||
|
|
||||||
common_bollard_extra_data = {
|
|
||||||
"source": "draft_fiche reflex bollards Schuman_20261006.docx",
|
|
||||||
"contract_beliris": "2.1.1.2 - Réaménagement du rond-point Schuman et de ses abords",
|
|
||||||
"warranty_end_date": "2029-09-15",
|
|
||||||
"future_contract": "E26.174 (BM-ITS)",
|
|
||||||
"installer": "Lowist (Mathie Lowist, ml@lowist.be)",
|
|
||||||
"civil_works": "Colas (Glenn Verhasselt)",
|
|
||||||
"beliris_contact": "Fabian Bossut (fabian.bossut@mobilit.fgov.be)",
|
|
||||||
"software": "Centrigo (level 27)",
|
|
||||||
"whitelist_sync": "GDA (Ville de Bruxelles) -> Centrigo",
|
|
||||||
"monitoring": "Genetec / MANBRU",
|
|
||||||
"deviation_plan": "Signalisation de déviation + blocs de béton (Trafiroad)",
|
|
||||||
}
|
|
||||||
|
|
||||||
for item in bollards_data:
|
|
||||||
geom_line = LineString(item['coords_3812'], srid=3812)
|
|
||||||
extra = dict(common_bollard_extra_data)
|
|
||||||
extra["centrigo_name"] = item["code"]
|
|
||||||
extra["plots_count"] = item.get("plots_count", 2)
|
|
||||||
extra["description"] = item["description"]
|
|
||||||
|
|
||||||
system, created = ITSBollardSystem.objects.update_or_create(
|
|
||||||
code=item['code'],
|
|
||||||
defaults={
|
|
||||||
'name_fr': item['name_fr'],
|
|
||||||
'name_nl': item['name_nl'],
|
|
||||||
'external_reference': item['code'],
|
|
||||||
'direction': item['direction'],
|
|
||||||
'width': item['width'],
|
|
||||||
'status': 'active',
|
|
||||||
'validation_status': 'validated',
|
|
||||||
'inspection_status': 'compliant',
|
|
||||||
'category': cat_bollards,
|
|
||||||
'model': model_bollards,
|
|
||||||
'location': loc_schuman,
|
|
||||||
'geom': geom_line,
|
|
||||||
'extra_data': extra,
|
|
||||||
'brand': 'Lowist',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
bollard_system_objs[item['code']] = system
|
|
||||||
if created:
|
|
||||||
created_bollards += 1
|
|
||||||
else:
|
|
||||||
updated_bollards += 1
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS(
|
|
||||||
f"[OK] Systemes de bornes : {created_bollards} crees, {updated_bollards} mis a jour."
|
|
||||||
))
|
|
||||||
|
|
||||||
# F) Création des 8 Caméras CCTV (ITSGeoAsset)
|
|
||||||
created_cameras = 0
|
|
||||||
updated_cameras = 0
|
|
||||||
camera_objs = {}
|
|
||||||
|
|
||||||
for cdata in cameras_data:
|
|
||||||
geom_pt = Point(cdata['coords_3812'], srid=3812)
|
|
||||||
c_extra = {
|
|
||||||
"source": "draft_fiche reflex bollards Schuman_20261006.docx",
|
|
||||||
"cctv_network": "MANBRU",
|
|
||||||
"vms": "Genetec",
|
|
||||||
"monitored_bollards": cdata['target_systems'],
|
|
||||||
"description": cdata['description'],
|
|
||||||
}
|
|
||||||
|
|
||||||
cam, created = ITSGeoAsset.objects.update_or_create(
|
|
||||||
code=cdata['code'],
|
|
||||||
defaults={
|
|
||||||
'name_fr': cdata['name_fr'],
|
|
||||||
'name_nl': cdata['name_nl'],
|
|
||||||
'status': 'active',
|
|
||||||
'validation_status': 'validated',
|
|
||||||
'inspection_status': 'compliant',
|
|
||||||
'category': cat_cctv,
|
|
||||||
'model': model_camera,
|
|
||||||
'location': loc_schuman,
|
|
||||||
'geom': geom_pt,
|
|
||||||
'extra_data': c_extra,
|
|
||||||
'brand': 'Genetec / MANBRU',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
camera_objs[cdata['code']] = cam
|
|
||||||
if created:
|
|
||||||
created_cameras += 1
|
|
||||||
else:
|
|
||||||
updated_cameras += 1
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS(
|
|
||||||
f"[OK] Cameras CCTV : {created_cameras} creees, {updated_cameras} mises a jour."
|
|
||||||
))
|
|
||||||
|
|
||||||
# G) Liaisons ManyToMany via ITSBollardSystemAsset
|
|
||||||
links_count = 0
|
|
||||||
for cdata in cameras_data:
|
|
||||||
cam_obj = camera_objs[cdata['code']]
|
|
||||||
for bcode in cdata['target_systems']:
|
|
||||||
if bcode in bollard_system_objs:
|
|
||||||
b_obj = bollard_system_objs[bcode]
|
|
||||||
link, created = ITSBollardSystemAsset.objects.update_or_create(
|
|
||||||
bollard_system=b_obj,
|
|
||||||
asset=cam_obj,
|
|
||||||
defaults={
|
|
||||||
'role': ITSBollardSystemAsset.AssetRole.CAMERA_CCTV,
|
|
||||||
'comment': f"Vue CCTV {cdata['name_fr']} vers {bcode}",
|
|
||||||
}
|
|
||||||
)
|
|
||||||
links_count += 1
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS(
|
|
||||||
f"[OK] Associations Cameras <-> Systemes de bornes : {links_count} associations actives."
|
|
||||||
))
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS("[SUCCES] Deploiement des assets Schuman termine avec succes !"))
|
|
||||||
|
|
||||||
def export_geojson(self, bollards_data, cameras_data, output_path):
|
|
||||||
"""
|
|
||||||
Exporte les données en un FeatureCollection GeoJSON (WGS84).
|
|
||||||
"""
|
|
||||||
from pyproj import Transformer
|
|
||||||
t = Transformer.from_crs("EPSG:3812", "EPSG:4326", always_xy=True)
|
|
||||||
|
|
||||||
features = []
|
|
||||||
|
|
||||||
# Bollards (LineString)
|
|
||||||
for b in bollards_data:
|
|
||||||
c1 = t.transform(b['coords_3812'][0][0], b['coords_3812'][0][1])
|
|
||||||
c2 = t.transform(b['coords_3812'][1][0], b['coords_3812'][1][1])
|
|
||||||
features.append({
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[round(c1[0], 7), round(c1[1], 7)],
|
|
||||||
[round(c2[0], 7), round(c2[1], 7)]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": b["code"],
|
|
||||||
"name_fr": b["name_fr"],
|
|
||||||
"name_nl": b["name_nl"],
|
|
||||||
"direction": b["direction"],
|
|
||||||
"width_m": b["width"],
|
|
||||||
"plots_count": b["plots_count"],
|
|
||||||
"description": b["description"],
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
# Caméras (Point)
|
|
||||||
for c in cameras_data:
|
|
||||||
pt = t.transform(c['coords_3812'][0], c['coords_3812'][1])
|
|
||||||
features.append({
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [round(pt[0], 7), round(pt[1], 7)]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": c["code"],
|
|
||||||
"name_fr": c["name_fr"],
|
|
||||||
"name_nl": c["name_nl"],
|
|
||||||
"target_bollards": c["target_systems"],
|
|
||||||
"description": c["description"],
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
geojson = {
|
|
||||||
"type": "FeatureCollection",
|
|
||||||
"name": "Schuman_Bollards_and_CCTV",
|
|
||||||
"crs": {
|
|
||||||
"type": "name",
|
|
||||||
"properties": {"name": "urn:ogc:def:crs:OGC:1.3:CRS84"}
|
|
||||||
},
|
|
||||||
"features": features
|
|
||||||
}
|
|
||||||
|
|
||||||
with open(output_path, 'w', encoding='utf-8') as f:
|
|
||||||
json.dump(geojson, f, indent=2, ensure_ascii=False)
|
|
||||||
|
|
||||||
self.stdout.write(self.style.SUCCESS(f"[OK] Fichier GeoJSON exporte avec succes : {output_path}"))
|
|
||||||
|
|
@ -1,511 +0,0 @@
|
||||||
{
|
|
||||||
"type": "FeatureCollection",
|
|
||||||
"name": "Schuman_Bollards_and_CCTV",
|
|
||||||
"crs": {
|
|
||||||
"type": "name",
|
|
||||||
"properties": {
|
|
||||||
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"features": [
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3857731,
|
|
||||||
50.8418253
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3858158,
|
|
||||||
50.8418703
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "WET_235",
|
|
||||||
"name_fr": "Bornes Schuman - Korte Wetstraat n°235",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Korte Wetstraat nr. 235",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 5.0,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Voie sud Korte Wetstraat face au n°235 en direction du Cinquantenaire",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3852976,
|
|
||||||
50.8419558
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3853473,
|
|
||||||
50.8420232
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "WET_SIAMU",
|
|
||||||
"name_fr": "Bornes Schuman - Korte Wetstraat SIAMU",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Korte Wetstraat SIAMU",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width_m": 7.5,
|
|
||||||
"plots_count": 4,
|
|
||||||
"description": "Voie nord Korte Wetstraat (accès prioritaire secours SIAMU)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.384233,
|
|
||||||
50.842401
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.384233,
|
|
||||||
50.8424549
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "EEAS_INT",
|
|
||||||
"name_fr": "Bornes Schuman - EEAS Intérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - EED Binnen",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width_m": 6.0,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Esplanade piétonne est, traverse intérieure près de la canopée",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3847299,
|
|
||||||
50.8424009
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3847299,
|
|
||||||
50.8424548
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "EEAS_EXT",
|
|
||||||
"name_fr": "Bornes Schuman - EEAS Extérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - EED Buiten",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width_m": 6.0,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Esplanade piétonne est, traverse extérieure face au bâtiment Capital / EEAS",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3820467,
|
|
||||||
50.8428599
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3820041,
|
|
||||||
50.8429318
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "BERL_EXT",
|
|
||||||
"name_fr": "Bornes Schuman - Berlaymont Extérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Berlaymont Buiten",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 8.0,
|
|
||||||
"plots_count": 4,
|
|
||||||
"description": "Chaussée sortie Schuman vers Rue de la Loi direction centre (traverse extérieure)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3823306,
|
|
||||||
50.8428059
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3822881,
|
|
||||||
50.8428778
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "BERL_INT",
|
|
||||||
"name_fr": "Bornes Schuman - Berlaymont Intérieur",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Berlaymont Binnen",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 8.0,
|
|
||||||
"plots_count": 4,
|
|
||||||
"description": "Chaussée sortie Schuman vers Rue de la Loi direction centre (traverse intérieure)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3833383,
|
|
||||||
50.8420686
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3833951,
|
|
||||||
50.8420506
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "FROI_OUT",
|
|
||||||
"name_fr": "Bornes Schuman - Froissart Sortie",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Froissart Uitrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 4.5,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Voie de sortie du rond-point vers la Rue Froissart (voie ouest)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3834164,
|
|
||||||
50.8421045
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3834732,
|
|
||||||
50.842082
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "FROI_IN",
|
|
||||||
"name_fr": "Bornes Schuman - Froissart Entrée",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Froissart Inrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 4.5,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Voie d'entrée dans le rond-point depuis la Rue Froissart (voie est)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3841191,
|
|
||||||
50.8418437
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3841759,
|
|
||||||
50.8418571
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "OUD_OUT",
|
|
||||||
"name_fr": "Bornes Schuman - Auderghem Sortie",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Oudergem Uitrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 4.5,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Voie de sortie du rond-point vers l'Avenue d'Auderghem (voie ouest)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3841972,
|
|
||||||
50.8418598
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3842611,
|
|
||||||
50.8418751
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "OUD_IN",
|
|
||||||
"name_fr": "Bornes Schuman - Auderghem Entrée",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Oudergem Inrit",
|
|
||||||
"direction": "unidirectional",
|
|
||||||
"width_m": 4.5,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Voie d'entrée dans le rond-point depuis l'Avenue d'Auderghem (voie est)",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "LineString",
|
|
||||||
"coordinates": [
|
|
||||||
[
|
|
||||||
4.3828984,
|
|
||||||
50.8424372
|
|
||||||
],
|
|
||||||
[
|
|
||||||
4.3829552,
|
|
||||||
50.8424822
|
|
||||||
]
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSBollardSystem",
|
|
||||||
"code": "J_LIPS",
|
|
||||||
"name_fr": "Bornes Schuman - Justus Lipsius",
|
|
||||||
"name_nl": "Verzinkbare palen Schuman - Justus Lipsius",
|
|
||||||
"direction": "bidirectional",
|
|
||||||
"width_m": 5.5,
|
|
||||||
"plots_count": 2,
|
|
||||||
"description": "Esplanade piétonne ouest en face du bâtiment Justus Lipsius",
|
|
||||||
"installer": "Lowist",
|
|
||||||
"contract": "Beliris 2.1.1.2",
|
|
||||||
"warranty_end": "2029-09-15"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.38605,
|
|
||||||
50.8418702
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-N23-BLIJDE-INKOMSTEN",
|
|
||||||
"name_fr": "CCTV N23 - Blijde Inkomsten",
|
|
||||||
"name_nl": "CCTV N23 - Blijde Inkomst",
|
|
||||||
"target_bollards": [
|
|
||||||
"WET_235",
|
|
||||||
"WET_SIAMU"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV carrefour N23 / Blijde Inkomst avec vue sur bollards WET_235 et WET_SIAMU",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.384162,
|
|
||||||
50.8423381
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-EEAS",
|
|
||||||
"name_fr": "CCTV Schuman - EEAS",
|
|
||||||
"name_nl": "CCTV Schuman - EED",
|
|
||||||
"target_bollards": [
|
|
||||||
"EEAS_INT",
|
|
||||||
"EEAS_EXT"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV esplanade est avec vue sur bollards EEAS_INT et EEAS_EXT",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.3824584,
|
|
||||||
50.842743
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-BERLAYMONT",
|
|
||||||
"name_fr": "CCTV Schuman - Berlaymont",
|
|
||||||
"name_nl": "CCTV Schuman - Berlaymont",
|
|
||||||
"target_bollards": [
|
|
||||||
"BERL_INT",
|
|
||||||
"BERL_EXT"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV nord-ouest avec vue sur bollards BERL_INT et BERL_EXT",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.3828842,
|
|
||||||
50.8424103
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-LIPSIUS",
|
|
||||||
"name_fr": "CCTV Schuman - Lipsius",
|
|
||||||
"name_nl": "CCTV Schuman - Lipsius",
|
|
||||||
"target_bollards": [
|
|
||||||
"J_LIPS"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV ouest avec vue sur bollards J_LIPS (Justus Lipsius)",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.383523,
|
|
||||||
50.8421854
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-FROISSART",
|
|
||||||
"name_fr": "CCTV Schuman - Froissart",
|
|
||||||
"name_nl": "CCTV Schuman - Froissart",
|
|
||||||
"target_bollards": [
|
|
||||||
"FROI_IN",
|
|
||||||
"FROI_OUT"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV sud-ouest avec vue sur bollards FROI_IN et FROI_OUT",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.3841192,
|
|
||||||
50.8421134
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-OUDERGEM",
|
|
||||||
"name_fr": "CCTV Schuman - Oudergem",
|
|
||||||
"name_nl": "CCTV Schuman - Oudergem",
|
|
||||||
"target_bollards": [
|
|
||||||
"OUD_IN",
|
|
||||||
"OUD_OUT"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV sud avec vue sur bollards OUD_IN et OUD_OUT",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.3843041,
|
|
||||||
50.8426527
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-KORTENBERG",
|
|
||||||
"name_fr": "CCTV Schuman - Kortenberg",
|
|
||||||
"name_nl": "CCTV Schuman - Kortenberg",
|
|
||||||
"target_bollards": [],
|
|
||||||
"description": "Caméra CCTV nord-est avec vue sur l'Avenue de Cortenbergh / Kortenberglaan",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Feature",
|
|
||||||
"geometry": {
|
|
||||||
"type": "Point",
|
|
||||||
"coordinates": [
|
|
||||||
4.3844459,
|
|
||||||
50.8422481
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"properties": {
|
|
||||||
"asset_type": "ITSGeoAsset (CCTV Camera)",
|
|
||||||
"code": "CAM-SCHUMAN-KLEINE-WETSTRAAT",
|
|
||||||
"name_fr": "CCTV Schuman - Kleine Wetstraat",
|
|
||||||
"name_nl": "CCTV Schuman - Korte Wetstraat",
|
|
||||||
"target_bollards": [
|
|
||||||
"WET_SIAMU",
|
|
||||||
"WET_235"
|
|
||||||
],
|
|
||||||
"description": "Caméra CCTV est avec vue sur la Korte Wetstraat vers l'est",
|
|
||||||
"network": "MANBRU",
|
|
||||||
"vms": "Genetec"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue