Openlayersで数千のポリゴンを表示する最良の方法は何ですか?


10

何千ものポリゴンを表示するOpenlayersマップを作成しようとしています。そして、ユーザーがそれぞれをクリックしたときに、メタデータの一部を表示したいと思います。この大規模なデータセットを扱うのは難しいようです。しかし、私はこれを行うための標準的な方法があるかどうかを理解しようとしています。この時点で、私はどちらかをすべきだと思います

  1. WMSでポリゴンを表示し、getfeatureinfoを使用する
  2. WFSで表示し、Strategy.BBOXでロードし、GetFeatureを使用してmeatadataを取得します。

このデータをすべてマップにロードして速度を上げるための論理的な方法はありませんか?私はこのページを見て、彼らが何をしているかを理解しようとしました:http : //protectedplanet.net/

回答:


5

生成される可能性のある要求の量のために遅くなる可能性があると思うので、BBOX戦略は好きではありません。

私はあなたが言及した両方のことを組み合わせて使用​​します。

WMSを使用してポリゴンを表示し、getfeatureinfo ...を使用してから、WFSを使用して、クリックされたときにフィーチャのアウトラインをロードしたり、データベースから詳細情報を取得したりします。

protectedplanet.netは、Googleマップだけでopenlayersを使用しません。彼らはおそらくすべての情報をKML / KMZに保存しています。


まことにありがとうございます!私はその時正しい軌道に乗っていると思います。しかし、私はprotectedplantedがKMLを使用しているかどうか疑問に思っています。その速度でそれを行うべきですか?そして、そのKMLデータはWFSによって提供されていますか?
KyleK 2012

KMLかどうかはわかりませんが、推測しただけです。しかし、WFSはGMLを使用しているため、それがWFSによって提供されていません。google apisとKMLの使用に関する重要な点は、誰もがそれを見ることができるパブリックURLにそのKMLを置く必要があるということです。それが問題でなければ、多分あなたはそれを試すことができます。これは、GoogleがこのKMLをサーバーに吸収し、APIに戻すためです。これらの2つの理由により、一部のプロジェクトの機密性のため、Google Maps APIを使用できません。
CaptDragon 2012

パブリックKML URLへのアクセスを制限して、Google KMLパーサー文字列を提示するユーザーエージェントのみを許可できます。
Sargeの

3

ここでの主なアプローチは、インタラクションでラスタライズを分離することです。一つのアプローチは、(私がのために部分的に関与していていること)であるUTFGridで使用されてきた、NPRなどとに統合されTileMillMAPNIKCartoDBでも使用されており、GoogleマップではFusion Tablesに対して同様のアプローチを使用しています。

保護された惑星もラスタータイル(たとえば、この1つhttp://184.73.201.235/blue/8/78/93)を使用し、ポイントベースのクエリ(たとえば、この1つ)の背後にライブサーバーがあります。

Re:CaptDragon:WFSやKMLは関与していません。

WMSとWFSは、パブリックサイトに十分なパフォーマンスを提供しません。ユーザーにズームを許可すると、BBOX戦略は機能しません。


参考:タイルを提供するWMSラスターサービスをキャッシュできます。
CaptDragon 2012

1
はい、しかしそれはここでの主な問題ではありません、それは双方向性です。WFS / WMS GetFeatureはタイルごとにキャッシュされるように設計されていないため、WFS / WMS GetFeatureが機能する方法をキャッシュすることはできません。
tmcw 2012

CSW、WFS、WMSのGetFeature、GetRecordなどの結果を常にキャッシュします。これらは相互運用性のためのフォーマットの標準にすぎず、キャッシュされているかどうかに関係なく、ソースの保存場所を指定するものではありません。
CaptDragon 2012

一般的なWFS GetFeatureリクエストは、単一の座標のリクエストです。そのリクエストのキャッシュは、完全に一致する場合にのみ有効です。これは、ユーザーの操作という点ではまれです。UTFGridのようなデータのタイルキャッシュのような代替物は、潜在的に数百万の単一座標のキャッシュとは異なり、キャッシュを楽観的に満たすことができます。このようにして、標準はキャッシュの使いやすさを規定しています。
tmcw 2012

うわーすべての助けをありがとう。私がOpenLayersを使用していて、マップが4326(TileMillではサポートされていません)である場合、これを使用してデータを保存およびアクセスする手段としてCartoDBをお勧めしますか?
KyleK 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.