セグメント間の距離に基づく線の集約


12

私が持っているVectorTileの私は(個々のタイルのサイズを小さくすることに取り組んで)、最適化していますことをベースマップを、タイルサイズの大きなチャンクは、道路データ(ジオメトリと属性)です。ズームレベルに基づいて個々の道路形状を単純化し、ズームレベルに基づいて道路を集約する作業を行っています。

道路はPostgisテーブル(各ズームレベルの個別のテーブル)に格納されており、表示されるズームレベルに基づいて道路を集約します。たとえば、ズームレベル5の表では、互いに一定の距離内にある道路を集約し、道路セグメントに対して1本の線を作成します。 ここに画像の説明を入力してください

そのズームレベルで個々の道路を作成することはできないため、 ここに画像の説明を入力してください

道路セグメント間の距離に基づいて道路ジオメトリを集約するにはどうすればよいですか?

PS:LinuxでPostGISとQGISに取り組んでいますが、オープンソースのプラットフォームまたはテクノロジーを使用したソリューションにはオープンです。


道路には共通のIDがありますか。たとえば、A50のズームレベル5の2車線は2本の線で表されますが、レベル4では1林で、すべて属性として「A50」がありますか?
AnserGIS

それらはすべてのズームレベルで2本の線で表されます。高速道路と高速道路には、高速道路の「M-2」のような共通の属性があります。
ハサンムスタファ

回答:


5

このOSオプション、Skeletronを見てみてください:

ポリゴンバッファとボロノイ図を使用して、特定の球状メルカトルズームレベルとピクセル精度にラインのコレクションを一般化します

これは、1996年のAlnoor LadakとRoberto B. Martinezによる「高精度道路中心線ティーセンポリゴンテクニックの自動導出」に基づいています

必要な依存関係がいくつかあります。

必要な依存関係:
-qhullバイナリ(http://www.qhull.org
-shapely 1.2+(http://pypi.python.org/pypi/Shapely
-pyproj(http://code.google.com/p / pyproj
-networkx 1.5+(http://networkx.lanl.gov
-StreetNames 0.1+(https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names

注:これは、参照できる参考資料として適用できる古いモデル/ツールです。


1
skeletronを使用する方法もあると思いますが、返信はreadmeファイルの単なるコピーであり、esri Webサイトへのリンクは無効です。ここで、マップに対して何を行うかを示すリンク:kartographie.geo.tu-dresden.de/downloads/ica-gen/workshop2004/…。それは本当に素晴らしく見えるが、私がそれを使用しようとしたとき、私はそれを使用する方法を知らなかった。useまたはsetup.py --helpコマンドを使用した賄except以外のドキュメントは見つかりませんでした...そのlibの使用方法を誰かが説明した場合、私は彼に報奨金を与えます。
ヒューゴルーサファ-GeoDatup

また、入力可能な限りOSM道路を使用しているので、あらゆる種類の回線で機能するソリューションが必要です。それでも、私はその背後にある科学が大好きで、他のシナリオにもこれを適用したいと思っています。
ハサンムスタファ

コメントを反映するために投稿を更新しました。フィードバックに感謝します。
ホワイザー

4

ArcGISは、オプションである場合に最も簡単です。私はOPがOSを指定していることを知っていますが、OSオプションはhttp://resources.arcgis.com/en/help/main/10.1/index.html#/Merge_Divided_Roads/00700000000w000000と比較してあまり役に立たないため、これについて言及しています /

この質問への回答は、いくつかのオープンソースのオプションを提供します:近くの平行な道路線(例えば、二重の車道)を1つの単一の線にマージ/崩壊するにはどうすればよいですか?

コーディングする場合、頂点ベースで平均座標位置を計算できますが、そうでない場合:

  1. 出力の「すべて結合」オプションで道路をバッファリングします。
  2. 多角形の中心線を取得します
  3. JUMPでジャンクションでラインを分割し、 他のラインの交差点でラインを分割します
  4. 空間属性を元に戻す

ArcGISの「中心線にポリゴン」ツールと同等の優れたOSも存在しないようです。私は提案するかもしれません:

a。ボロノイ図を作成し、スケルトンを取得します。
b。ユークリッド距離ラスターを作成し、中心値を抽出してラインに変換します

...おそらく他のいくつかも。

最後に、規模と用途によっては、2行のうち1行を削除するだけでも価値があるかもしれません。不正確さが問題になりますか?


ArcGISのオプションは見栄えが良いので、試してみますが、OSソリューションの方がいいでしょう。頂点単位で平均座標位置を計算することが、私のフォールバック戦略です。あなたがリストしたすべての方法を試し、それらが私のために働くかどうかを確認します、ありがとう!
ハサンムスタファ

ArcGISツール「Merge Divided Roads(Cartography)」はまさに私が探しているものですが、私がしているすべての処理はLinux上でPostgresとQGISを使用して、ウィンドウに切り替えるために必要なツールを使用することです。
ハサンムスタファ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.