海岸線を一般化するには?


12

基本的に世界の海岸線を表す多数のデータポイントがあります。正確な解像度はわかりませんが、5〜10mの範囲内だと思います。

ギザギザの海岸線を表す一連のポイントを想像してください。1mの解像度ではすべての詳細が表示され、海岸を正確に表すために50個のデータポイントが必要ですが、10kmの解像度では海岸は直線に見え、2ポイントしか必要ありません。

私は、データを「全惑星」解像度から「ストリート」解像度にスケーリングする必要があるマッピングアプリケーションを作成しています。データポイントの解像度を下げ、さらに広い解像度のデータ量を減らすための手助けが必要です。

私はベクタータイリングについて読んでおり、これが最良の解決策だと思います(私はすでにこのようなことをしています)が、低解像度では、データセットはまだかなりの意味で、それは[比較的]長い時間がかかります「有効な」データセットが小さいため全体のサブセットであるため、高解像度は高速です。

「フルプラネット」ビューのタイルデータが管理可能なサイズになるように、大規模なデータセットを取得してそのスケールを縮小する方法を決定しようとしています。より大きな完全なデータセットからタイルサブデータセットを作成するにはどうすればよいですか?

ツールを使用できてうれしいですが、それがどのように行われるかを学ぶために自分でやろうと思っています。


1
gis.stackexchange.com/questions/6585/…への回答を確認しましたか?質問が異なると思われる場合は詳しく説明してください。
暗闇

1
質問は「ポイント」ではなく海岸線に関するものでなければならないようです。解像度が低くなるにつれて、小さな島は消えるべきですか?細い蛇行島の周りの海岸線を横断しても大丈夫ですか?
カーククイケンドール

あなたがまずまずの仕事をして、先に進みたいだけなら、@ R Thiedeの答えがおそらく開始するのに最適な場所です。形状の意味を失うことなくラインワークを簡素化する本当の課題に取り組みたい場合は、関連する質問gis.stackexchange.com/questions/38/…およびgis.stackexchange.com/questions/440/…を参照してください。
マットウィルキー

回答:


7

この問題をどのように解決するかは、場合と、実際のトポロジーがどれだけ重要かによって異なります(ビジュアル/レンダリング時間のみ)。最終的な目標は海岸線を一般化することなので、一般化に関するいくつかのアイデアが役立つことがあります。

ここで見られるように、1つのアプローチはバッファリングを使用します。私も少し前に同様の問題を抱えていたので、ここで解決策を詳しく説明しました

つまり、異なるレベルに一般化された個別のベクターデータセット(または少なくとも個別のジオメトリ)を使用できます。これは基本的な問題に対処しますが、タイルは使用しませんが、もちろん、必要に応じてタイルを使用できます。もちろん、グリッドに基づいてデータセットをタイルに分割する場合は、必ず最初に一般化する必要があります。そうしないと、タイル間にギャップが生じます。


+1思慮深い返信。私たちのサイト、Rüdigerへようこそ!
whuber

5

「フルプラネット」ズームレベルからクローズアップズームまで、さまざまな一般化バージョンのデータセットを準備する必要があります。

古典的な一般化アルゴリズムは、Douglas-Peuckerアルゴリズムです。まだ行っていない場合は、まずポイントを海岸線に接続する必要があります。


2
GEOSライブラリには、これを自分でコーディングする場合に使用できるDouglas-Peuckerアルゴリズムが組み込まれています。ただし、トポロジーを検討することをお勧めします。その場合、GRASS v.generalizeツールも役立ちます。
lagerratrobe

こんにちは@lagerratrobe。このアンサーコミュニティwikiを作成したので、直接編集して、GEOSとGRASSの両方のソリューションを追加できるはずです。
暗闇


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.