arcgis.js は、マップ本体の表示範囲を制御し、領域を超えた場合に自動的にバウンスするようにします (実装のアイデア)

arcgis.js は、マップ本体の表示範囲を制御し、領域を超えた場合に自動的にバウンスするようにします (実装のアイデア)

背景

少し前に、会社のプロジェクトで問題が発生しました。地図のベースマップ領域の範囲が一部しかありません。現在の範囲を超えると、白い背景が表示され、使用効果の面で非常に悪いです。付随する要件は、地図をズームアウトする必要があり、マウスで地図をベースマップの表示範囲を超えて移動した場合、ベースマップをリバウンドする必要があることです。

効果

ここに画像の説明を挿入

アイデア

1. arcgis.js は表示範囲を制御し、ベースマップの表示範囲を超えると自動的に戻ります。 (1) マップが作成された後、リスナーイベントを使用してマップ範囲の変更をリッスンし、shwoExtent メソッドを呼び出します。これにより、マップの左上隅と右下隅の値を渡します。

this.gisMap.on('範囲変更',this.showExtent)

(2)地図の最大表示範囲の全域を基準に、現在の地図表示範囲が地図の可視範囲を超えているかどうかを判定する。範囲を超えている場合は、地図の最大範囲を表示し、地図をリバウンドさせる。

コードスニペット

// ハイライトされたブロック
フルエクステント = {
    x分: xx,
    y最小: xx,
    xmax: xx,
    ymax: xx,
   }
表示範囲(extS){
   ext = extS.extent とします。  
    (ext.xmin<this.fullExtent.xmin||ext.xmax>this.fullExtent.xmax||ext.ymax>this.fullExtent.ymax||ext.ymin<this.fullExtent.ymin) の場合 {
    fullExtent = new esri.geometry.Extent( とする
     {
      ...this.fullExtent、 
      spatialReference:new esri.SpatialReference({ wkid: parseInt(4490) }) //SpatialReference はマップの座標系を設定します}
    );
    gisMap の Extent を fullExtent に設定します。
   }
  },

参照ドキュメント: https://developers.arcgis.com/javascript/3/jsapi/extent-amd.html

注: ドキュメントを参照するときは、プロジェクトで使用されている arcgis.js のバージョンを知っておく必要があります。

arcgis.js がマップ本体の表示範囲を制御し、表示範囲が領域を超えた場合に自動的にリバウンドする方法についての説明はこれで終わりです。arcgis.js マップ表示範囲に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • ArcGIS for js ラスター レイヤー オーバーレイ (ラスター レイヤー) の問題
  • ArcGIS for JS で情報ウィンドウのスタイルを変更する方法
  • ArcGIS for JavaScript に基づく Baidu マップ ABCD マーカーの効果の実現

<<:  Ubuntu Linux に Git と GitHub をインストールして使用する

>>:  Windows 10 64 ビット版に MySQL 5.6.35 をインストールするためのグラフィック チュートリアル

推薦する

Vue のフィルターの適用シナリオの詳細な説明

filterは通常、特定の値をフィルターするために使用されます。たとえば、フィールドが空だが、フロン...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

ウィンドウとLinuxプロジェクトを展開する際のLinuxファイルパスに問題はありません

長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...

時間範囲効果を実現するためのJavaScript

この記事では、時間範囲効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...

Web面接におけるJS事前解析と変数プロモーションの違い

目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...

HTML チュートリアル: 定義リスト

<br />原文: http://andymao.com/andy/post/104.h...

CSS ポインターイベント属性の使用に関する詳細な説明

フロントエンド開発では、ユーザーと直接やり取りするため、ユーザーが操作がスムーズで快適だと感じ、ネイ...

Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習

目次Matlab セントロイドアルゴリズムMatlab はクローズドな商用ソフトウェアであり、米国政...

bashの初期化メカニズムの詳細な説明

Bash 初期化ファイル対話型ログインシェル次の場合にはログイン シェルを取得できます。ローカル端末...

ウェブページのメモリとCPU使用量を削減する方法

<br />Web ページによっては、サイズは大きくないように見えても開くのに非常に時間...

MySQL のインデックスにおける NULL の影響についての詳細な説明

序文私は多くのブログを読み、弊社の DBA を含む多くの人々が、MySql では列に null が含...

MySQL ロール関数の紹介

目次序文: 1. 役割の紹介2. 役割に関連する操作要約:序文:前回の記事では、MySQLの権限管理...

Vue でクラスとスタイルを使用して v-bind バインディングを使用するいくつかの方法

要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サ...

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

VueとFlask間の通信の実装

axiosをインストールして通信を実装するここでは、axios を使用して Vue フロントエンドと...