Bonjour,
Je souhaite réaliser des isochrones d’après l’article de l’analyse d’isodistance/
La méthode la plus pertinente dans mon cas de figure se trouve être la méthode dite ‘Isochrone avec St_MakePolygon et St_ExteriorRing’
La requete suivant permet d’obtenir l’isochrone pour toutes les routes à moins de 500m de la poste. Elle fonctionne dès lors que l'on connait l’identifiant (edge_id) du point qui nous intéresse.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

with buffer_itineraire as (
SELECT et.edge_id,
st_buffer(et.geom,10,'endcap=square join=round') as geom
, 1 as factor
FROM pgr_drivingdistance(
'SELECT edge_id as id, start_node as source, end_node as target, tps_distance as cost from routing.edge_data',
8215, 0.5, false, false
) firstPath
CROSS JOIN
(SELECT id1,cost from pgr_drivingDistance(
'SELECT edge_id as id,start_node as source , end_node as target,tps_distance as cost FROM routing.edge_data',
8215,0.2,false,false)
) secondPath
INNER JOIN routing.edge_data et
ON firstPath.id1 = et.start_node
AND secondPath.id1 = et.end_node)
SELECT ST_MakePolygon(ST_ExteriorRing(ST_GeometryN(st_union(geom),1))) as geom FROM buffer_itineraire;
Voir la capture du résultat :Nom : isochrone_poste_500.png
Affichages : 36
Taille : 281,9 Ko

Je cherche à exécuter cette requete pour tous les points qui ont l’information ‘Agroalimentaire’, puis ‘Services’, puis ‘Autres’ contenue dans un champ ‘type_comm’, sans avoir à chercher manuellement l’edge_id pour chacun des points question (il y en a 37).

Pourriez vous m’aider à résoudre cette requête?

Dans l'attente de vos réponses, questions, je vous souhaite une bonne journée.

Marine.