2

KMLデータベースにファイルをインポートしましたpostgis。道路を選択すると、正しい結果が得られます。これは 1 つの道路です。行数は多くないので手動で並べることもできますが、100 行を超える道路もあります。

kml インポート

そこで、輸入時にラインストリングを注文したいと思います。

私はこれを持っています:

折れ線

1 - ラインストリングをマージしたいと思います。これST_Unionを行うことは可能ですが、今それを行うと、結果が非​​常に奇妙になるため、行を並べ替える必要があります。

2 - ラインストリングを並べ替える必要があるため、テーブルに列の位置があります。折れ線の終点と始点を取得する方法を知っています。

私がこれを行うとき:

SELECT ST_AsText(ST_ClosestPoint(ST_GeomFromText('POINT(7.38770714271048 47.5497446465569)',4326),geometrie)), ST_AsText(ST_ClosestPoint(geometrie,ST_GeomFromText('POINT(7.38770714271048 47.5497446465569)',4326))) FROM sections WHERE nom_voie = 'LA THERMALE';

7.38770714271048 47.5497446465569エンドポイントです

道路 LA THERMALE のすべての行を返します。

おそらく注文せずにラインストリングをマージする別の解決策はありますか?

ラインストリングを連結すると、結果は false になります。ライン 1 のエンドポイントをライン 4 の開始点などに関連付けます。順序付けられていないためだと思います。

4

1 に答える 1