User:Barnes38/GrenobleAlpesMétropole ComboireCyclable

From OpenStreetMap Wiki
Jump to navigation Jump to search

Qualification des stationnements vélos à proximité des commerces des zones commerciales des trois communes d'Échirolles, de Saint-Égrève, et de Saint-Martin d'Hères

Préparation qualité, quantité et proximité

Zones Commerciales d'Échirolles, de Saint-Égrève, et de Saint-Martin d'Hères

Numéro Explications Requête Overpass
1.1 Zones Commerciales
try it yourself in overpass-turbo
[out:json][timeout:25];
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes);
out geom;
1.2 Zones Commerciales
try it yourself in overpass-turbo
[out:json][timeout:25];
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes);
out geom;
1.3 Commerces, entrées, et pkgs vélos ds Zones Commerciales d'Échirolles, de Saint-Égrève, et de Saint-Martin d'Hères
try it yourself in overpass-turbo
[out:json][timeout:125];
()->.nShops;
()->.nEntrances;
()->.nPkgVelos;
// Commerces, entrées, et pkgs vélos ds zones commerciales d'Échirolles, de Saint-Égrève, et de Saint-Martin d'Hères
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;

nwr(area.TroisCommunes)[amenity=bicycle_parking]->.nPkgVelos;
way(area.TroisCommunes)[building=retail][shop!=mall]->.Shops;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
}
(
  .nPkgVelos;
  .nEntrances;
  .nShops;
);
out geom;


Req générale

Numéro Explications Requête Overpass
Req générale description
try it yourself in overpass-turbo
[out:json][timeout:125];
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;


way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  (
   nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:50);
  )->.PkgVeloOK1;
  (
 nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:50);
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Qualité, quantité et proximité

area[name="Saint-Égrève"]->.searchArea; way["landuse"="retail"](area.searchArea)->.ZonesCommerciales;

Accueil cycliste 3 étoiles

AC3* Tous les magasins (sauf les mall) dans le périmètre de ZonesCommerciales qui disposent de stationnement vélo de bonne qualité (stands,handlebar_holder, bollard, wave) couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;

way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK11;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.PkgVeloOK1;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  )->.PkgVeloOK11;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK11; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 2 étoiles

Numéro Explications Requête Overpass
AC2* Tous les magasins (sauf les mall) dans le périmètre de ZonesComemrciales qui disposent de stationnement vélo de bonne qualité (stands, handlebar_holder, bollard, wave) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;


way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;


foreach.Shops->.Shop {
  ()->.PkgVelosOK11;
  ()->.PkgVelosOK111;
  ()->.PkgVelosOK1111;  

  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:25)->.PkgVelosOK11;
  (
     nwr.PkgVelosOK11[covered=no];
     nwr.PkgVelosOK11[!covered];
  )->.PkgVelosOK111;
  (
    nwr.PkgVelosOK111[bicycle_parking=stands];
    nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
    nwr.PkgVelosOK111[bicycle_parking=bollard];
    nwr.PkgVelosOK111[bicycle_parking=wave];
   )->.PkgVelosOK1111;

 (
  nwr.PkgVelosOK111[bicycle_parking=stands];
  nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
  nwr.PkgVelosOK111[bicycle_parking=bollard];
  nwr.PkgVelosOK111[bicycle_parking=wave];
 );
   
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVelosOK1111; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 1 étoile

Numéro Explications Requête Overpass
AC1* Tous les magasins (sauf les mall) dans le périmètre de ZonesCommerciales qui disposent de stationnements vélo de moindre qualité (différentsde stands, handlebar_holder, bollard, wave) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;


way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK2;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
  
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave](around.nEntrance:25)->.PkgVeloOK1;
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Tous les autres où il n'y a rien

Numéro Explications Requête Overpass
AC0* Tous les autres magasins et leurs entrées
try it yourself in overpass-turbo
// 1. Tous les commerces de ZonesCommerciales
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
(
area["ref:INSEE"=38151]; // Échirolles
area["ref:INSEE"=38382]; // Saint-Égrève
area["ref:INSEE"=38421]; // Saint-Martin d'Hères  
)->.TroisCommunes;

way["landuse"="retail"](area.TroisCommunes)->.ZonesCommerciales;


way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;

()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;

()->.allBicycleParkings;
()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;

nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=floor]->.allBicycleParkings;

foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

// Soustractions finales
//  entrances
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;

//  shops
(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;

//  BicycleParkings
(
  .allBicycleParkings;
  -
  .star3BicycleParkings;
)->.allBicycleParkings3;

(
  .allBicycleParkings3;
  -
  .star2BicycleParkings;
)->.allBicycleParkings32;

(
  .allBicycleParkings32;
  -
  .star1BicycleParkings;
)->.remainingBicycleParkings;



(
  .remainingBicycleParkings;
  .remainingEntrances;
  .remainingShop2s;
);



out geom;

Qualification des stationnements vélos à proximité des commerces de la zone commerciale de Comboire

Préparation "Qualité, quantité et proximité"

}}
Numéro Explications Requête Overpass
1.1 Commerces à Comboire
try it yourself in overpass-turbo
// Commerces à Comboire
[out:json][timeout:25];
area[name="Échirolles"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
out geom;
1.2 Entrées des commerces à Comboire
try it yourself in overpass-turbo
// Entrées des commerces à Comboire
[out:json][timeout:25];
area[name="Échirolles"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Entrées des commerces à Comboire
[out:json][timeout:25];
area[name="Échirolles"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area.retails)[entrance=main];
out;
1.3 Commerces, entrées, et pkgs vélos ds Zones Commerciales de Comboire
try it yourself in overpass-turbo
[out:json][timeout:125];
()->.nShops;
()->.nEntrances;
()->.nPkgVelos;
// Commerces, entrées, et pkgs vélos ds zones commerciales de SMH
area[name="Échirolles"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea)->.Comboire;
nwr(area.Comboire)[amenity=bicycle_parking]->.nPkgVelos;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
}
(
  .nPkgVelos;
  .nEntrances;
  .nShops;
);
out geom;


1.4 Parkings vélos à Comboire
try it yourself in overpass-turbo
area[name="Échirolles"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
map_to_area->.retails;
nwr(area)[amenity=bicycle_parking];
out geom;
2.1.1 Commerces Comboire avec stationnements vélos à moins de 20 m de leur entrée
try it yourself in overpass-turbo
// Commerces Comboire avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Commerces Comboire avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.2 Commerces Comboire avec stationnements vélos à moins de 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces Comboire avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Commerces Comboire avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.3 Commerces Comboire avec stationnements vélos entre 20 et 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces Comboire avec stationnements vélos entre 20 et 50 m de leur entrée
[out:json][timeout:25];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
(
 node(area.retails)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around50;
(
 node(area.retails)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around20;

(
.around50;
-
.around20;
); 
{{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out geom meta;
2.1.4
try it yourself in overpass-turbo
// Deux req avec deux colorations différentes
[out:json][timeout:125];
area[name="Grenoble-Alpes Métropole"]->.searchArea;
way["name"="Espace Comboire"]["landuse"="retail"](area.searchArea);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails50;
	 way(around.retails50:50)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:orange; fill-color:orange; } 
	 }}
     out;
   );
);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails20;
	 way(around.retails20:20)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:green; fill-color:green; } 
	  }}
      out;
   );
);
3.1
try it yourself in overpass-turbo
// Tous les noeuds des périmètres des magasins de Comboire
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
}

(
  node.nShops;
);

out ids geom;
3.2
try it yourself in overpass-turbo
// Tous les entrées trouvées dans les noeuds qui constituent les périmètres des magasins de Comboire
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
  
}
(
  node.nEntrances;
);
out ids geom;
3.3
try it yourself in overpass-turbo
3.4
try it yourself in overpass-turbo
3.5
try it yourself in overpass-turbo
3.6
try it yourself in overpass-turbo

Qualité, quantité et proximité

Accueil cycliste 3 étoiles

AC3* Tous les magasins (sauf les mall) dans le périmètre de Comboire qui disposent de stationnement vélo de bonne qualité (stands,handlebar_holder, wave, bollard) couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;

()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK11;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.Comboire)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.PkgVeloOK1;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  )->.PkgVeloOK11;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK11; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 2 étoiles

Numéro Explications Requête Overpass
AC2* Tous les magasins (sauf les mall) dans le périmètre de Comboire qui disposent de stationnement vélo de bonne qualité (stands,handlebar_holder, wave, bollard) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;

()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;


foreach.Shops->.Shop {
  ()->.PkgVelosOK11;
  ()->.PkgVelosOK111;
  ()->.PkgVelosOK1111;  

  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.Comboire)[amenity=bicycle_parking](around.nEntrance:25)->.PkgVelosOK11;
  (
     nwr.PkgVelosOK11[covered=no];
     nwr.PkgVelosOK11[!covered];
  )->.PkgVelosOK111;
  (
    nwr.PkgVelosOK111[bicycle_parking=stands];
    nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
    nwr.PkgVelosOK111[bicycle_parking=bollard];
    nwr.PkgVelosOK111[bicycle_parking=wave];
   )->.PkgVelosOK1111;

 (
  nwr.PkgVelosOK111[bicycle_parking=stands];
  nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
  nwr.PkgVelosOK111[bicycle_parking=bollard];
  nwr.PkgVelosOK111[bicycle_parking=wave];
 );
   
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVelosOK1111; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 1 étoile

Numéro Explications Requête Overpass
AC1* Tous les magasins (sauf les mall) dans le périmètre de Comboire qui disposent de stationnements vélo de moindre qualité (différents de stands, handlebar_holder, bollard, wave) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;

()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK2;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25)->.PkgVeloOK1;
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25);

  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Tous les autres où il n'y a rien

Numéro Explications Requête Overpass
AC0* Tous les autres magasins et leurs entrées
try it yourself in overpass-turbo
// 1. Tous les commerces de Comboire
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.Comboire)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.Comboire)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
// Soustractions finales
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;


(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingEntrances;
  .remainingShop2s;
);



out geom;
AC0* Tous les autres magasins
try it yourself in overpass-turbo
// 1. Tous les commerces de Comboire
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 

area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  (
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=handlebar_holder][covered=yes](around.nEntrance:25);
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=stands][covered=yes](around.nEntrance:25);
  )->.star3BicycleParking;
  
  (
 nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=handlebar_holder][covered=yes](around.nEntrance:25);
 nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=stands][covered=yes](around.nEntrance:25);
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  
  // 2*
  (
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=stands][covered=no](around.nEntrance:25);
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=handlebar_holder][covered=no](around.nEntrance:25);
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=bollard][!covered](around.nEntrance:25);
   nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=wave][!covered](around.nEntrance:25);
)->.star2BicycleParking;

 (
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=stands][covered=no](around.nEntrance:25);
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=handlebar_holder][covered=no](around.nEntrance:25);
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=bollard][!covered](around.nEntrance:25);
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking=wave][!covered](around.nEntrance:25);
 );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  // 1*  
 nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.Comboire)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingShop2s;
);
out geom;
AC0* Tous les magasins sauf Boulanger
try it yourself in overpass-turbo
area["name"="Espace Comboire"]["landuse"="retail"]->.Comboire;
way(area.Comboire)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

(
 way(area.Shops)[name=Boulanger];
)->.Boulanger;

(
  .allShops;
  - 
  .Boulanger;
)->.reste;

(
  way(area.reste)[building=retail][shop!=mall];
);

out geom;

Qualification des stationnements vélos à proximité des commerces de la zone commerciale de Saint-Martin-d'Hères

Préparation Qualité, quantité et proximité

Numéro Explications Requête Overpass
1.0 Zones Commerciales à SMH
try it yourself in overpass-turbo
// Commerces à SMH
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
out geom;
1.1 Commerces dans les zones commerciales de Saint-Martin d'Hères
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Martin d'Hères
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
out geom;
1.2 Entrées des commerces dans les zones commerciales de Saint-Martin d'Hères
try it yourself in overpass-turbo
// Entrées des commerces dans les zones commerciales de Saint-Martin d'Hères
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Entrées des commerces dans les zones commerciales de Saint-Martin d'Hères
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
node(area.retails)[entrance=main];
out;
1.3 Commerces, entrées, et pkgs vélos ds Zones Commerciales de SMH
try it yourself in overpass-turbo
[out:json][timeout:125];
()->.nShops;
()->.nEntrances;
()->.nPkgVelos;
// Commerces, entrées, et pkgs vélos ds zones commerciales de SMH
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
nwr(area.SMH)[amenity=bicycle_parking]->.nPkgVelos;
way(area.SMH)[building=retail][shop!=mall]->.Shops;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
}
(
  .nPkgVelos;
  .nEntrances;
  .nShops;
);
out geom;


1.4 Parkings vélos dans les zones commerciales de Saint-Martin d'Hères
try it yourself in overpass-turbo
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
map_to_area->.retails;
nwr(area)[amenity=bicycle_parking];
out geom;
2.1.1 Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 20 m de leur entrée
try it yourself in overpass-turbo
// Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.2 Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
 out;
);
try it yourself in overpass-turbo
// PLUS SIMPLE Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.3 Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos entre 20 et 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces zones commerciales de Saint-Martin d'Hères avec stationnements vélos entre 20 et 50 m de leur entrée
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
(
 node(area.retails)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around50;
(
 node(area.retails)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around20;

(
.around50;
-
.around20;
); 
{{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out geom meta;
2.1.4
try it yourself in overpass-turbo
// Deux req avec deux colorations différentes
[out:json][timeout:125];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails50;
	 way(around.retails50:50)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:orange; fill-color:orange; } 
	 }}
     out;
   );
);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails20;
	 way(around.retails20:20)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:green; fill-color:green; } 
	  }}
      out;
   );
);
3.1
try it yourself in overpass-turbo
3.2
try it yourself in overpass-turbo
3.3
try it yourself in overpass-turbo
3.4
try it yourself in overpass-turbo
5 Deux req avec deux colorations différentes
try it yourself in overpass-turbo
// Deux req avec deux colorations différentes
[out:json][timeout:25];
area["ref:INSEE"=38421]->.SMH;
(
way["landuse"="retail"](area.SMH);
way(area)[building=retail];
map_to_area->.retails;
	foreach .retails ->.retail(
		node(area)[entrance=main];
 		nwr(around:50)[amenity=bicycle_parking]->.commerces50;
 		way(around.commerces50:50)["building"="retail"]; 
	    (._;>;);
  		{{style:
            way[building=retail]
  			{ color:orange; fill-color:orange; } 
		}}
        out;
	);
    
);

(
way["landuse"="retail"](area.SMH);
way(area)[building=commercial];
map_to_area->.commercials;
	foreach .commercials ->.commercial(
		node(area)[entrance=main];
 		nwr(around:50)[amenity=bicycle_parking]->.commercials50;
 		way(around.commercials50:50)["building"="commercial"]; 
	    (._;>;);
  		{{style:
            way[building=commercial]
  			{ color:green; fill-color:green; } 
		}}
        out;
	);
    
);

Qualité, quantité et proximité

Accueil cycliste 3 étoiles

AC3* Tous les magasins (sauf les mall) dans le périmètre de ZonesCommercialesSMH qui disposent de stationnement vélo de bonne qualité (stands ou handlebar_holder) couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;
way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK11;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.PkgVeloOK1;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  )->.PkgVeloOK11;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK11; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 2 étoiles

Numéro Explications Requête Overpass
AC2* Tous les magasins (sauf les mall) dans le périmètre de Comboire qui disposent de stationnement vélo de bonne qualité (stands ou handlebar_holder) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;

way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;


foreach.Shops->.Shop {
  ()->.PkgVelosOK11;
  ()->.PkgVelosOK111;
  ()->.PkgVelosOK1111;  

  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking](around.nEntrance:25)->.PkgVelosOK11;
  (
     nwr.PkgVelosOK11[covered=no];
     nwr.PkgVelosOK11[!covered];
  )->.PkgVelosOK111;
  (
    nwr.PkgVelosOK111[bicycle_parking=stands];
    nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
    nwr.PkgVelosOK111[bicycle_parking=bollard];
    nwr.PkgVelosOK111[bicycle_parking=wave];
   )->.PkgVelosOK1111;

 (
  nwr.PkgVelosOK111[bicycle_parking=stands];
  nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
  nwr.PkgVelosOK111[bicycle_parking=bollard];
  nwr.PkgVelosOK111[bicycle_parking=wave];
 );
   
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVelosOK1111; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 1 étoile

Numéro Explications Requête Overpass
AC1* Tous les magasins (sauf les mall) dans le périmètre de Comboire qui disposent de stationnements vélo de moindre qualité (rateliers) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;

way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK2;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
  
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.PkgVeloOK1;
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Tous les autres où il n'y a rien

Numéro Explications Requête Overpass
AC0* Tous les autres magasins et leurs entrées
try it yourself in overpass-turbo
// 1. Tous les commerces de ZonesCommercialesSMH
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;

way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;
()->.allShops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
// Soustractions finales
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;


(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingEntrances;
  .remainingShop2s;
);



out geom;
AC0* Tous les autres magasins
try it yourself in overpass-turbo
// 1. Tous les commerces de ZonesCommercialesSMH
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;

way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;
()->.allShops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.ZonesCommercialesSMH)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
// Soustractions finales
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;


(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingShop2s;
);



out geom;
AC0* Tous les magasins sauf Boulanger
try it yourself in overpass-turbo
area["ref:INSEE"=38421]->.SMH;
way["landuse"="retail"](area.SMH)->.ZonesCommercialesSMH;

way(area.ZonesCommercialesSMH)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

(
 way(area.Shops)[name=Boulanger];
)->.Boulanger;

(
  .allShops;
  - 
  .Boulanger;
)->.reste;

(
  way(area.reste)[building=retail][shop!=mall];
);

out geom;

Qualification des stationnements vélos à proximité des commerces des zones commerciales de Saint-Égrève

Préparation qualité, quantité et proximité

Zones Commerciales de Saint-Egrève

Numéro Explications Requête Overpass
1.1 Zones Commerciales
try it yourself in overpass-turbo
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
out geom;
1.2 Zones Commerciales
try it yourself in overpass-turbo
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
out geom;
1.3 Commerces, entrées, et pkgs vélos ds Zones Commerciales de St-Egrève
try it yourself in overpass-turbo
[out:json][timeout:125];
()->.nShops;
()->.nEntrances;
()->.nPkgVelos;
// Commerces, entrées, et pkgs vélos ds zones commerciales de St-Egrève
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
nwr(area.Commune)[amenity=bicycle_parking]->.nPkgVelos;
way(area.Commune)[building=retail][shop!=mall]->.Shops;
foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
}
(
  .nPkgVelos;
  .nEntrances;
  .nShops;
);
out geom;


Req générale

Numéro Explications Requête Overpass
Req générale description
try it yourself in overpass-turbo
[out:json][timeout:125];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea)->.ZonesCommercialesStEgreve;
way(area.ZonesCommercialesStEgreve)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  (
   nwr(area.ZonesCommercialesStEgreve)[amenity=bicycle_parking](around.nEntrance:50);
  )->.PkgVeloOK1;
  (
 nwr(area.ZonesCommercialesStEgreve)[amenity=bicycle_parking](around.nEntrance:50);
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Qualité, quantité et proximité

area[name="Saint-Égrève"]->.searchArea; way["landuse"="retail"](area.searchArea)->.ZonesCommercialesStEgreve;

Accueil cycliste 3 étoiles

AC3* Tous les magasins (sauf les mall) dans le périmètre de ZonesCommerciales qui disposent de stationnement vélo de bonne qualité (stands,handlebar_holder, bollard, wave) couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK11;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.PkgVeloOK1;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  )->.PkgVeloOK11;

  (
    nwr.PkgVeloOK1[bicycle_parking=handlebar_holder];
    nwr.PkgVeloOK1[bicycle_parking=stands];
    nwr.PkgVeloOK1[bicycle_parking=bollard];
    nwr.PkgVeloOK1[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK11; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 2 étoiles

Numéro Explications Requête Overpass
AC2* Tous les magasins (sauf les mall) dans le périmètre de ZonesComemrciales qui disposent de stationnement vélo de bonne qualité (stands, handlebar_holder, bollard, wave) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;


foreach.Shops->.Shop {
  ()->.PkgVelosOK11;
  ()->.PkgVelosOK111;
  ()->.PkgVelosOK1111;  

  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;

  nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:25)->.PkgVelosOK11;
  (
     nwr.PkgVelosOK11[covered=no];
     nwr.PkgVelosOK11[!covered];
  )->.PkgVelosOK111;
  (
    nwr.PkgVelosOK111[bicycle_parking=stands];
    nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
    nwr.PkgVelosOK111[bicycle_parking=bollard];
    nwr.PkgVelosOK111[bicycle_parking=wave];
   )->.PkgVelosOK1111;

 (
  nwr.PkgVelosOK111[bicycle_parking=stands];
  nwr.PkgVelosOK111[bicycle_parking=handlebar_holder];
  nwr.PkgVelosOK111[bicycle_parking=bollard];
  nwr.PkgVelosOK111[bicycle_parking=wave];
 );
   
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVelosOK1111; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Accueil cycliste 1 étoile

Numéro Explications Requête Overpass
AC1* Tous les magasins (sauf les mall) dans le périmètre de ZonesCommerciales qui disposent de stationnements vélo de moindre qualité (différentsde stands, handlebar_holder, bollard, wave) non couverts à moins de 25 m de leur entrée
try it yourself in overpass-turbo
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;
()->.ShopsOK;
()->.ShopsKO;
()->.nShops;
()->.nEntrances;
()->.nEntrancesOK;
()->.PkgVelosOK1;
()->.PkgVelosOK2;

foreach.Shops->.Shop {
  
  (.Shop;>;)->.nShop;
  (.nShop;.nShops;)->.nShops;
  
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.nEntrances;)->.nEntrances;
  
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave](around.nEntrance:25)->.PkgVeloOK1;
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.nEntrancesOK;)->.nEntrancesOK;
    (.Shop; .ShopsOK;) ->.ShopsOK;   
    (.PkgVeloOK1; .PkgVelosOK1;) ->.PkgVelosOK1;
  }
}

(
  .PkgVelosOK1;
  .nEntrancesOK;
  .ShopsOK;
);

out geom;

Tous les autres où il n'y a rien

Numéro Explications Requête Overpass
AC0* Tous les autres magasins et leurs entrées
try it yourself in overpass-turbo
// 1. Tous les commerces de ZonesCommerciales
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
// Soustractions finales
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;


(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingEntrances;
  .remainingShop2s;
);



out geom;
AC0* Tous les autres magasins
try it yourself in overpass-turbo
// 1. Tous les commerces de ZonesCommerciales
// 2. Tous ceux qui sont dans la catégorie 3*
// 3. Tous ceux qui sont dans la catégorie 2*
// 4. Tous ceux qui sont dans la catégorie 1*
// 5. Le 1 -(2+3+4) 
[out:json][timeout:500];
area["ref:INSEE"=38382]->.Commune;
way["landuse"="retail"](area.Commune)->.ZonesCommerciales;
way(area.ZonesCommerciales)[building=retail][shop!=mall]->.Shops;

()->.allShops;
()->.allShops;
()->.star3Shops;
()->.star2Shops;
()->.star1Shops;
()->.koShops;
()->.allEntrances;
()->.star3Entrances;
()->.star2Entrances;
()->.star1Entrances;
()->.koEntrances;

()->.star3BicycleParkings;
()->.star2BicycleParkings;
()->.star1BicycleParkings;


foreach.Shops->.Shop {
  (.Shop;>;)->.nShop;
  (.nShop;.allShops;)->.allShops;
  node(area.Shop)[entrance=main]->.nEntrance;
  (.nEntrance;.allEntrances;)->.allEntrances;
}

foreach.Shops->.Shop {
  node(area.Shop)[entrance=main]->.nEntrance;
  // 3*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][covered=yes](around.nEntrance:25)->.star3BicycleParking;
  
  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  )->.star3BicycleParking2;

  (
     nwr.star3BicycleParking[bicycle_parking=handlebar_holder];
     nwr.star3BicycleParking[bicycle_parking=stands];
     nwr.star3BicycleParking[bicycle_parking=bollard];
     nwr.star3BicycleParking[bicycle_parking=wave];
  );
  if (count(nodes)>0) {
	(.nEntrance;.star3Entrances;)->.star3Entrances;
    (.Shop; .star3Shops;) ->.star3Shops;
    (.star3BicycleParking2; .star3BicycleParkings;) ->.star3BicycleParkings;
  }
  
  // 2*
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking](around.nEntrance:25)->.star2BicycleParking;
  (
     nwr.star2BicycleParking[covered=no];
     nwr.star2BicycleParking[!covered];
  )->.star2BicycleParking2;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  )->.star2BicycleParking22;

 (
     nwr.star2BicycleParking2[bicycle_parking=handlebar_holder];
     nwr.star2BicycleParking2[bicycle_parking=stands];
     nwr.star2BicycleParking2[bicycle_parking=bollard];
     nwr.star2BicycleParking2[bicycle_parking=wave];
  );
   
  if (count(nodes)>0) {
	(.nEntrance;.star2Entrances;)->.star2Entrances;
    (.Shop; .star2Shops;) ->.star2Shops;   
    (.star2BicycleParking22; .star2BicycleParkings;) ->.star2BicycleParkings;
  }
  
  
  // 1*  
 nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25)->.star1BicycleParking;
  nwr(area.ZonesCommerciales)[amenity=bicycle_parking][bicycle_parking!=stands][bicycle_parking!=handlebar_holder][bicycle_parking!=bollard][bicycle_parking!=wave][bicycle_parking!=floor](around.nEntrance:25);
  if (count(nodes)>0) {
	(.nEntrance;.star1Entrances;)->.star1Entrances;
    (.Shop; .star1Shops;) ->.star1Shops;   
    (.star1BicycleParking; .star1BicycleParkings;) ->.star1BicycleParkings;
  }
}

 // Soustractions finales
// Soustractions finales
(
  .allEntrances;
  -
  .star3Entrances;
)->.allEntrances3;

(
  .allEntrances3;
  -
  .star2Entrances;
)->.allEntrances32;

(
  .allEntrances32;
  -
  .star1Entrances;
)->.remainingEntrances;


(
  .allShops;
  -
  .star3Shops;
)->.allShops3;

(
  .allShops3;
  -
  .star2Shops;
)->.allShops32;

(
  .allShops32;
  -
  .star1Shops;
)->.remainingShops;

(
  way(area.remainingShops)[building=retail][shop!=mall];
)->.remainingShop2s;


(
  .remainingShop2s;
);



out geom;

Qualité, quantité et proximité 2

Numéro Explications Requête Overpass
1.1 Commerces des zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Commerces des zones commerciales de Saint-Égrève
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
out geom;
1.2 Entrées des commerces des zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Entrées des commerces des zones commerciales de Saint-Égrève
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 out;
);
1.3 Parkings vélos dans les zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Parkings vélos dans les zones commerciales de Saint-Égrève
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
map_to_area->.retails;
nwr(area)[amenity=bicycle_parking];
out geom;
2.1.1 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 20 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.2 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.3 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos entre 20 m et 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos entre 20 m et 50 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;

(
 node(area.retails)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around50;
(
 node(area.retails)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around20;
(
.around50;
-
.around20;
); 
{{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out geom meta;
2.1.4
try it yourself in overpass-turbo
// Deux req avec deux colorations différentes
[out:json][timeout:125];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails50;
	 way(around.retails50:50)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:orange; fill-color:orange; } 
	 }}
     out;
   );
);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails20;
	 way(around.retails20:20)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:green; fill-color:green; } 
	  }}
      out;
   );
);



Qualité, quantité et proximité 2

Numéro Explications Requête Overpass
1.1 Commerces des zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Commerces des zones commerciales de Saint-Égrève
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
out geom;
1.2 Entrées des commerces des zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Entrées des commerces des zones commerciales de Saint-Égrève
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
foreach .retails ->.retail(
 node(area)[entrance=main];
 out;
);
1.3 Parkings vélos dans les zones commerciales de Saint-Égrève
try it yourself in overpass-turbo
// Parkings vélos dans les zones commerciales de Saint-Égrève
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
map_to_area->.retails;
nwr(area)[amenity=bicycle_parking];
out geom;
2.1.1 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 20 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 20 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.2 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos à moins de 50 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;
node(area)[entrance=main](area.retails);
nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
  {{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out;
2.1.3 Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos entre 20 m et 50 m de leur entrée
try it yourself in overpass-turbo
// Commerces dans les zones commerciales de Saint-Égrève avec stationnements vélos entre 20 m et 50 m de leur entrée
[out:json][timeout:25];
area[name="Saint-Égrève"]->.searchArea;
["landuse"="retail"](area.searchArea);
way(area)[building=retail];
map_to_area->.retails;

(
 node(area.retails)[entrance=main];
 nwr(around:50)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around50;
(
 node(area.retails)[entrance=main];
 nwr(around:20)[amenity=bicycle_parking][bicycle_parking!=floor];
)->.around20;
(
.around50;
-
.around20;
); 
{{style: 
   node, way, relation {
    text: capacity;
   }
  }}
out geom meta;
2.1.4
try it yourself in overpass-turbo
// Deux req avec deux colorations différentes
[out:json][timeout:125];
area[name="Saint-Égrève"]->.searchArea;
way["landuse"="retail"](area.searchArea);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails50;
	 way(around.retails50:50)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:orange; fill-color:orange; } 
	 }}
     out;
   );
);
(
  way(area)[building=retail];
  map_to_area->.retails;
  foreach .retails ->.retail(
     node(area)[entrance=main];
     nwr(around:20)[amenity=bicycle_parking]->.retails20;
	 way(around.retails20:20)["building"="retail"]; 
     (._;>;);
  	 {{style:
            way[building=retail]
  			{ color:green; fill-color:green; } 
	  }}
      out;
   );
);