他のタイルサービスをプロキシするジオサーバーのサポート?


8

中央サーバーを使用して、すべてのマッピング/画像リソースに共通の場所を提供したいと思います。私たちのデータは主に、ウェブ上のさまざまなソースからのさまざまなベースレイヤーを含むジオティフの形式です。

ジオサーバーのセットが与えられると、Geoserverは(WMTSまたはTMSを介して)タイルを提供するという素晴らしい仕事をします。ただし、http://services.arcgisonline.com/ArcGIS/rest/servicesからのサンプルベースレイヤーのようなデータの他の外部ソースを簡単にプロキシする方法を知りません。残念ながら、多くのサービスがWMSレイヤーを実装しているようには見えません(または公開しない)。現在、さまざまなWebサービスを特殊なケースに適用するロジックがありますが、これはちょっとしたハックです。理想的には、すべてのタイルプロバイダーに共通のWebサービスインターフェイスを提供したいと思います。これにより、ワールドウィンドアプリケーションなどのWMSクライアントが「そのまま機能する」ようになります。

私が今考えているのは、WMSを介して機能のリストを公開し、このサービスをカスケードWMSストアとしてジオサーバーに追加する小さなpython Webサービスを構築することです。これは、単純にマップタイルURLを提供するための多くの作業のようです。

この問題が以前に解決されているのか、もっと簡単な解決策があるのか​​、私は興味があります。

ありがとう!

回答:


7

MapProxyをチェックしてみてください。これは、地理空間データのオープンソースプロキシです。既存のマップサービスからのデータをキャッシュ、高速化、変換し、デスクトップまたはWeb GISクライアントにサービスを提供します。

ここに画像の説明を入力してください

以下からデータを読み取ります。

  • WMSソース(1.0.0–1.3.0)
  • TMS / WMTSはMapserverおよびMapnik構成をソース
  • TileCache、Googleマップ、またはBing互換のソース

それもできます

  • MBTilesまたはCouchDB内でファイルシステムにデータをキャッシュする
  • WMSソースを他のSRSに再投影する
  • 同一の画像を一度だけ保存する(例:海のタイル)
  • 透かしをタイルに埋め込む
  • 複数のソースをマージする
  • ソースをポリゴン領域に制限する

MapProxyも完全準拠のWMSサーバーであり、すべてのWMSクライアント(デスクトップおよびWeb)をサポートします。キャッシュデータからのWMS応答をサポートします。

  • タイルをマージし、画像を拡大縮小または再投影します
  • 既存のWMSを10〜100倍高速化

カスケードされたWMSサービス:

  • マルチスレッドのリクエスト
  • 複数のソースをマージします
  • 不透明レイヤーに透明度を追加します
  • その場で再投影

また、キャッシュされたレイヤーとカスケードされたレイヤーの組み合わせもサポートします。

  • GetLegendGraphicリクエストに応答する
  • GetFeatureInfoリクエストとオプションのXSL変換をカスケードする
  • ソースをポリゴン領域に制限する
  • WMSのバージョンと画像形式を変換する
  • DEMなどの非画像ラスターデータのサポート

パフォーマンスを向上させるために、タイルキャッシュを事前に生成することもできます。

また、サービスとレイヤーをきめ細かく制御できる柔軟な承認APIも付属しています。


2
これは質問に対する最良の回答ですが、自分が制御していない外部サービスでは絶対にこれを実行してはいけないという推奨事項に従ってください。少なくとも、これはパフォーマンスの悪夢であり、より一般的には利用規約に違反します。サービスが一時停止されます。
tmcw 2012年

0

サーバーを介して外部サービスをプロキシすることによってボトルネックを作成する。また、1つのサーバーにすべての要求を処理させることで、Webマップのパフォーマンスを低下させます。

私がこれの理由を見たかもしれない唯一の理由はセキュリティのためです。しかし、それでも、代わりにエンドポイントを保護し、トークンを渡す方がよいでしょう。

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