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 をインストールするためのグラフィック チュートリアル

推薦する

MySQL 5.1 のパスワードを変更し、MySQL データベースにリモートでログインする方法

mysql ユーザーを作成し、承認します。形式: 「ユーザー パスワード」で識別されるユーザー@ログ...

Ubuntu 19にTheanoをインストールする際の問題を解決する

解決: pythearn2 パッケージをダウンロードしたディレクトリで、setup.py ファイルを...

時間のかかるMySQLレコードのSQL例の詳細な説明

mysqlは時間のかかるSQLを記録しますMySQL は、最適化と分析のために、時間のかかる SQL...

MySQL の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

MySQL 8.0 の新機能: ハッシュ結合

MySQL 開発チームは、2019 年 10 月 14 日に MySQL 8.0.18 GA バージ...

CSS レスポンシブ レイアウト システムの例コード

レスポンシブ レイアウト システムは、今日の一般的な CSS フレームワークではすでに非常に一般的で...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

HTMLシールドの右クリックメニューと左クリック入力機能の例

右クリックメニューを無効にする <body oncontextmenu=self.event....

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

Vue で棒グラフを使用し、自分で設定を変更する方法

1. HTMLファイルでechartをインポートする <!-- echarts をインポート ...

HTML で dl(dt,dd)、ul(li)、ol(li) を使用する方法

HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...

ドキュメントの場所の比較

<br />2 年前に PPK が投稿した素晴らしいブログ記事では、contains()...

MySQL 8.0.15 のインストールと設定方法のグラフィック チュートリアル (Windows 10 X64)

最近私が学んでいるのは MySQL の知識なので、MySQL をインストールすることが非常に重要です...