Vertdure commited on
Commit
3cff2e0
1 Parent(s): 6ff63b3

Update pages/12_🌲_VertXtractor.py

Browse files
Files changed (1) hide show
  1. pages/12_🌲_VertXtractor.py +7 -5
pages/12_🌲_VertXtractor.py CHANGED
@@ -9,7 +9,6 @@ import json
9
 
10
  st.set_page_config(layout="wide", page_title="Extracteur de données géospatiales")
11
 
12
- # Liste étendue des couches disponibles
13
  LAYERS = {
14
  # Swisstopo
15
  "SWISSIMAGE 10 cm": {"id": "ch.swisstopo.swissimage-dop10", "source": "swisstopo", "type": "image"},
@@ -19,8 +18,8 @@ LAYERS = {
19
  "Limites administratives": {"id": "ch.swisstopo.swissboundaries3d-gemeinde-flaeche.fill", "source": "swisstopo", "type": "vector"},
20
  "Réseau hydrographique": {"id": "ch.bafu.vec25-gewaessernetz", "source": "swisstopo", "type": "vector"},
21
  # ESRI
22
- "World Imagery": {"id": "WorldImagery", "source": "esri", "type": "image"},
23
- "World Elevation": {"id": "WorldElevation", "source": "esri", "type": "raster"},
24
  "World Topographic": {"id": "World_Topo_Map", "source": "esri", "type": "image"},
25
  "World Street Map": {"id": "World_Street_Map", "source": "esri", "type": "image"},
26
  "World Terrain": {"id": "World_Terrain_Base", "source": "esri", "type": "image"},
@@ -49,7 +48,7 @@ def get_download_url(bbox, layer_info):
49
  data_key = 'rgb' if 'rgb' in asset_keys else 'data' if 'data' in asset_keys else next(iter(asset_keys))
50
  return feature['assets'][data_key]['href']
51
  else: # ESRI
52
- service_url = f"https://server.arcgisonline.com/arcgis/rest/services/{layer_info['id']}/MapServer/export"
53
  params = {
54
  "bbox": f"{bbox[0]},{bbox[1]},{bbox[2]},{bbox[3]}",
55
  "bboxSR": 4326,
@@ -62,7 +61,10 @@ def get_download_url(bbox, layer_info):
62
  response = requests.get(service_url, params=params)
63
  response.raise_for_status()
64
  json_response = response.json()
65
- if 'href' in json_response:
 
 
 
66
  return json_response['href']
67
  elif 'url' in json_response:
68
  return json_response['url']
 
9
 
10
  st.set_page_config(layout="wide", page_title="Extracteur de données géospatiales")
11
 
 
12
  LAYERS = {
13
  # Swisstopo
14
  "SWISSIMAGE 10 cm": {"id": "ch.swisstopo.swissimage-dop10", "source": "swisstopo", "type": "image"},
 
18
  "Limites administratives": {"id": "ch.swisstopo.swissboundaries3d-gemeinde-flaeche.fill", "source": "swisstopo", "type": "vector"},
19
  "Réseau hydrographique": {"id": "ch.bafu.vec25-gewaessernetz", "source": "swisstopo", "type": "vector"},
20
  # ESRI
21
+ "World Imagery": {"id": "World_Imagery", "source": "esri", "type": "image"},
22
+ "World Elevation": {"id": "WorldElevation/Terrain", "source": "esri", "type": "raster"},
23
  "World Topographic": {"id": "World_Topo_Map", "source": "esri", "type": "image"},
24
  "World Street Map": {"id": "World_Street_Map", "source": "esri", "type": "image"},
25
  "World Terrain": {"id": "World_Terrain_Base", "source": "esri", "type": "image"},
 
48
  data_key = 'rgb' if 'rgb' in asset_keys else 'data' if 'data' in asset_keys else next(iter(asset_keys))
49
  return feature['assets'][data_key]['href']
50
  else: # ESRI
51
+ service_url = f"https://server.arcgisonline.com/arcgis/rest/services/{layer_info['id']}/ImageServer/exportImage"
52
  params = {
53
  "bbox": f"{bbox[0]},{bbox[1]},{bbox[2]},{bbox[3]}",
54
  "bboxSR": 4326,
 
61
  response = requests.get(service_url, params=params)
62
  response.raise_for_status()
63
  json_response = response.json()
64
+ if 'error' in json_response:
65
+ st.error(f"Erreur ESRI: {json_response['error']['message']}")
66
+ return None
67
+ elif 'href' in json_response:
68
  return json_response['href']
69
  elif 'url' in json_response:
70
  return json_response['url']