openlayers6のマップオーバーレイの詳細な説明

openlayers6のマップオーバーレイの詳細な説明

1. オーバーレイの概要

オーバーレイとは、その名の通り、別の形で地図上に表示される、覆うことを指します。多くの学生は、これをレイヤーと混同しています。主に、地図上の位置に関連する要素を配置するために使用されます。一般的な地図オーバーレイには、 popup 彈窗label標注信息text文本信息などの 3 種類があり、これらのオーバーレイは HTML の要素に相当します。オーバーレイ属性要素は HTML 要素にバインドされ、座標パラメータが同時に設定され、HTML 要素が地図上に配置されます。パンやズームを行うと、HTML 要素も地図の動きに合わせて移動します。

公式サイトの説明を見てみましょう。実はこの属性はデフォルトでマップに存在しています。前回の記事のレイヤー、コントロール、インタラクションと同じです。默認加載地圖的情況下是允許設置默認的overlay覆蓋物。特定のイベントやメソッドがトリガーされたときに、別のカバレッジを追加することもできます。ここでは前回の記事の説明を参照できますが、ここでは詳細には説明しません。

ここに画像の説明を挿入

2. オーバーレイプロパティ

Overlay は、初期化時に多くの構成パラメータを受け入れることができます。これらの構成パラメータは、オブジェクト リテラル (options) を形成するキーと値のペアであり、その後、 new ol.Overlay(options)などの「コンストラクター」に渡されます。ここで、options は、パラメータのキーと値のペアで構成されるオブジェクト リテラルです。設定可能なキーと値のペアは次のように定義されます: (赤は共通プロパティを示します)

  • id 、対応するオーバーレイの ID を設定します。これにより、ol.Map の getOverlayById メソッドを使用して対応するオーバーレイを取得できます。
  • elementはオーバーレイに含まれる DOM 要素です。 offsetはオフセットで、ピクセル単位で、配置位置 (position) に対するオーバーレイのオフセットです。デフォルト値は [0, 0] で、正の値はそれぞれ右と下にオフセットします。 positionはマップの座標系におけるオーバーレイの位置です。
  • positioning 、オーバーレイ 位置の相対位置については、可能な値には、bottom-left、bottom-center、bottom-right、center-left、center-center、center-right、top-left、top-center、top-right が含まれます。デフォルトは top-left で、要素の左上隅が位置と一致することを意味します。
  • stopEvent 、マップのイベント伝播を停止するかどうかを指定します。デフォルト値は true で、伝播を停止することを意味します。わかりにくいかもしれません。たとえば、マウス ホイールをマップ上で回転すると、マップのズーム イベントがトリガーされます。ホイールをオーバーレイ上で回転すると、ズーム イベントはトリガーされません。マウスでオーバーレイのズームをサポートする場合は、このプロパティを false に設定するだけです。
  • insertFirst は、オーバーレイを最初にコンテナーに追加するかどうかを指定します。stopEvent が true に設定されている場合、オーバーレイ コントロールと openlayers コントロールはコンテナー内に配置されます。このとき、insertFirst を true に設定すると、オーバーレイが最初にコンテナーに追加されます。このように、オーバーレイはデフォルトでコントロールの次のレイヤーにあります (CSS z-index)。したがって、stopEvent と insertFirst の両方がデフォルト値を使用する場合、オーバーレイはデフォルトでコントロールの次のレイヤーにあります。
  • autoPan 、オーバーレイの setPosition メソッドがトリガーされたときにトリガーされます。オーバーレイがマップの境界を超えると、オーバーレイが完全に表示されるようにマップが自動的に移動します。
  • autoPanAnimation、自動パン効果アニメーションを設定します。パラメータタイプはolx.animation.panOptionsです。
  • autoPanMargin、マップが自動的にパンされるときのマップの端とオーバーレイ間のスペース(ピクセル単位)。デフォルトは 20 ピクセルです。

以下の場合に使用します。

2. オーバーレイイベント

サポートされているイベントは主に、 ol.Objectから継承されたchangeイベントで、オーバーレイ関連のプロパティまたはオブジェクトが変更されたときにトリガーされます。

  • 参照カウンタが増加するとトリガーされる変更。
  • change:element、オーバーレイに対応する要素が変更されたときにトリガーされます。
  • change:map、オーバーレイに対応するマップが変更されたときにトリガーされます。
  • change:offset、オーバーレイに対応するオフセットが変更されたときにトリガーされます。
  • change:position、オーバーレイの対応する位置が変更されたときにトリガーされます。
  • change:positioning、オーバーレイの対応する配置が変更されたときにトリガーされます。
  • propertychange、オーバーレイの対応するプロパティが変更されたときにトリガーされます。

では、対応するイベントをどのようにバインドするのでしょうか? Openlayers バインディング イベントは、DOM レベル 2 イベント バインディングを含む一般的な DOM イベント バインディング ルールに従います。以下は、オーバーレイの位置が変更されたときにブラウザー コンソールに文字列を出力する例です。

var オーバーレイ = 新しい ol.Overlay({
    // オーバーレイを作成します...省略});
// イベント overlay.on("change:position", function(){
    console.log("位置が変更されました!");
})

4. オーバーレイ方式

サポートされているメソッド ここでは、オーバーレイに固有のメソッドのみを紹介し、継承されたメソッドは紹介しません。これらは主に、オーバーレイ プロパティとそれに関連付けられたオブジェクトのgetメソッドとsetメソッドです。

  • getElement、オーバーレイを含む DOM 要素を取得します。
  • getId、オーバーレイ ID を取得します。
  • getMap、オーバーレイに関連付けられたマップ オブジェクトを取得します。
  • getOffset、オフセット属性を取得します。
  • getPosition、位置属性を取得します。
  • getPositioning、配置属性を取得します。
  • setElement; オーバーレイ要素を設定します。
  • setMap、オーバーレイ付きのマップ オブジェクトを設定します。
  • setOffset、オフセットを設定します。
  • setPosition、位置プロパティを設定します。
  • setPositioning は、配置プロパティを設定します。

5. 最後まで書き続ける

冒頭で、オーバーレイにはpopup 彈窗label標注信息text文本信息

詳細については、この記事を参照してください openlayers6 [8] マップオーバーレイオーバーレイポップアップウィンドウ、マーカー注釈、テキストテキストの3つの一般的な使用法

openlayers6マップオーバーレイの詳細な説明については、これで終わりです。より関連性の高いopenlayerオーバーレイマップカバレッジコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)
  • Openlayersは地図注釈を描画します
  • OpenLayers 3 のベクターマップソースの読み込みの問題を解決する

<<:  MySQLを閉じることができない問題を解決する方法

>>:  NginxはGzipアルゴリズムを使用してメッセージを圧縮します

推薦する

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...

Vue コンポーネント値転送中のデータ損失の分析と解決

序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...

Apache ストレステストツールのインストールと使用

1. ダウンロードApacheの公式サイトhttp://httpd.apache.org/にアクセス...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

MySQLの3つの用途と違いは同等ではない

MySQLでは判定記号がよく使われますが、等しくない記号はもっと一般的に使われます。次の3つの等しく...

MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明

取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...

Docker rocketmq デプロイメントの実装例

目次準備展開プロセスRocketMQ の初体験関連する質問ヘルプドキュメント私は最近 RocketM...

Mybatis mysqlの削除操作では、最初のデータメソッドのみを削除できます。

バグ図のように、削除文とパラメータをデータベースにコピーして実行し、2つのデータを削除しようとしたの...

MySQL 条件付きクエリと使用法および優先順位の例の分析

この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...

MySQL ステートメントコメントの紹介

MySQL は次の 3 種類のコメントをサポートしています。 1. 行末の「#」文字から。 2. 「...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

TCPソケットSYNキューとAcceptキューの差異分析

まず、「LISTENING」状態の TCP ソケットには 2 つの独立したキューがあることを理解する...

SSDストレージを有効にしたMySQLインスタンスの詳細な説明

SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...