Daily Archives: 08/19/2013

OpenLayersのVector LayerのStrategy classについて[Chapter 48]

OpenLayersを使ってみる。[Chapter 48]

OpenLayersのVector LayerのFormat classについて[Chapter 47] に引き続き、OpenLayersのStrategy classについて基本を学んでいきます。

この章以降は、

  • どのようにvector layerを描いているか?
  • Vector Classとは?
  • GeometryとFeature classについて
  • Strategy,Protocol,Format classの使い方 → 今回もここ

について順番に学んでいきます。
今回で9章まで終了しました。

OpenLayers 2.10 Beginner's Guideなる書籍の章立てにあわせて、OpenLayersの使い方を学んでいきます。

Strategy class

Strategy classは、Vector layerがどのようにデータを要求するか決めるために使用されます。
Strategyは、BBOXとclusterのStrategyは両方とも同時に使用することができます。
Strategyのsubclassはそれぞれ互いに全く異なります。したがって、subclassについてそれぞれをみてみましょう。

Strategy.BBOX

このclassは地図の範囲内にあるデータを表示するために使用されます。
WFSプロトコルと共に使用された時、それは地図の範囲以内にあるデータだけのリクエストをセット・アップします。
多くのfeature dataを用いるのならば、可視の範囲内にあるデータを戻すので、BBOX Strategyの使用は非常に有効です。
これは、にもかかわらずa静的ファイルが知らないある種の特徴サーバーとのみ可能です、地図範囲の中で渡されたリクエストをどうするべきもの、また静的ファイルが含んでいるすべての特徴を常に後ろに返すでしょう。

詳細は、OpenLayers.Strategy.BBOXを参考にしてください。

Strategy.Cluster

これは距離およびオプションのしきい値パラメーターに基づいて、featureをcluster化するでしょう。
Vector layerのfeature list中のfeatureはcluseterに取り替えられるでしょう。また、clusterはそれぞれcluster object propertyにfeatureの情報をすべて含んでいます。

distance property(距離特性)は、クラスタの間の{Integer}pixel距離を指定します。
Point Featureが距離以内にある場合、それはclusterに加えられます。
Defaultでは、istance property(距離特性)は20です。

threshold(しきい値) propertyはどれだけのfeatureが見つかるかに依存して、featureがclusterに分けられるかどうか判断するオプションです。
これによって、しきい値が4でセットされる場合、それは少なくとも4つのfeatureがclusterを作成することになります。
距離以内にある3つのfeatureがあれば、そのしきい値に遭遇しないとともに、それらはclusterに分けられないでしょう。

詳細は、OpenLayers.Strategy.Clusterを参考にしてください。

Strategy.Filter

Strategy.Filter classは、Vector layerに加えられるfeatureを制限するために使用されます。
それは、feature data上の比較を行うためにOpenLayers.Filter classを使用します。
このStrategyを使用するために、OpenLayers.Filter objectを作成しなければなりません。それは次章で詳細な説明を行います。

詳細は、OpenLayers.Strategy.Filterを参考にしてください。

Strategy.Fixed

このStrategyは、featureを一度要求し、かつ再びそれらを要求しないために使用されます。
Layerが表示される前に、dataをloadします。
もし正しく調整する準備ができていれば、featureが描画される前に、地図の表示を遅くすることができます。

詳細は、OpenLayers.Strategy.Fixedを参考にしてください。

Strategy.Paging

このStrategyを使用すると、featureは「page」へグループ化することができます。
大量のfeature dataを持っていれば、これは非常に有用なStrategyです。
1ページ当たりのfeature の数を指定する{Integer}を取り入れるlength property(長さ特性)があります。
このlength propertyのdefault値は10です。

もう一つのpropertyのnumは、現在のページ番号の{Integer}を含んでいます。
このStrategyを使用するために、pageNext()およびpagePreviousな()をpageによって進む方法と呼ぶ必要があります。

詳細は、OpenLayers.Strategy.Pagingを参考にしてください。

Strategy.Refresh

このStrategyは再度featureのredrawnを要求して、Vector layerをrefreshします。
それは手動で呼ぶことができます。あるいは、間隔はセットすることができます。また、それは間隔の渡されたものでrefreshすることができます。

Interval property(間隔特性)は、自動的にVector layerをrefreshために、どれくらい頻繁に明示する値が0を超えた値がセットされた場合、ミリセカンドで{float}でrefreshされます。
Interval property(間隔特性)は、defaultで、0にセットされ、自動的にrefreshされません。

Force propertyは、Vector layerを強制的にrefreshします。
Defaultではfalse状態となっています。
refreshについては、以下のような方法があります。

  • refresh(): Causes the layer to be refreshed
  • reset(): Resets the timing interval (if set)
  • start(): Begins the auto-refresh behavior based on the interval property
  • stop(): Ends the auto-refresh

詳細は、OpenLayers.Strategy.Refreshを参考にしてください。

Strategy.Save

このStrategyを使用すると、featureをserverに保存することができます。
例えばWFSサーバーのようなsaveを許可しなければなりません。
save() methodが呼ばれる時、変更はserver上に保存されます。

Strategy.Saveには、{false}あるいは{float}(数秒で)でセットすることができるauto property(自動特性)がさらにあります。
正しく調整する準備ができていた場合、featureが修正された(あるいは削除された)直後に、保存することができます。

詳細は、OpenLayers.Strategy.Saveを参考にしてください。

今回のまとめ

OpenLayersの簡単なStrategy classについて学びました。(ちょい手抜きの部分もありますが。。。)
次回は、10章の Vector LayerのStyleについて基本を学んでいきます。

また、本tutorialは、htmlやCSSやJavaScriptの基本的なことはある程度理解している前提で今後も話を進めていきます。また、誤字、脱字、spell間違いや勘違いも多々出てくると考えられます。
それは違うじゃん!!とかいろんな意見をいただければと思います。
そこんところ ヨロシク~~!!

OpenLayers Tutorialの目次に戻る。

1 / 11

Social Widgets powered by AB-WebLog.com.