このpgRouting
pgr_drivingDistance
関数は、道路網の頂点の ID のみを返しますが、特定の運転時間内の道路の端の ID は返しません。
この道路の端を見つけるために、次のクエリを作成しました。
SELECT all_roads.id, the_geom
FROM
(
SELECT e.id, e.the_geom
FROM tmp_ddist dd,
tmp_edge e
WHERE
e.target = dd.vertex
UNION
SELECT e.id, e.the_geom
FROM tmp_ddist dd,
tmp_edge e
WHERE
e.source = dd.vertex
) all_roads
GROUP BY all_roads.id, the_geom
HAVING COUNT(all_roads.id) = 2
基本的に、pgr_drivingDistance
関数によって生成されたセットにソース頂点とターゲット頂点を持つ道路の端を見つけ、このセットにソースとターゲットの両方を持つエッジのみを返します。
このクエリを最適化する方法はありますか?