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

推薦する

CSS3で実装されたグラデーションスライド効果

成果を達成する コードhtml <div class="css-slideshow&...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

JavaScriptはシンプルな日付効果を実装します

JavaScriptの日付エフェクトの具体的なコードは参考用です。具体的な内容は次のとおりです。コー...

MySQL トランザクション分離レベルとロックメカニズムの問題に関する深い理解

概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...

MySQL をクリーンにアンインストールする方法 (テスト済みで効果的)

Mysql を完全にアンインストールするにはどうすればいいですか?以下の手順に従って実行してくださ...

JSのアンカーリンクをクリックするとスムーズにスクロールし、自由にトップ位置に調整できます。

アンカーリンクをクリックするとスムーズにスクロールし、自由にトップ位置に調整できます。 1. アンカ...

ブラウザタブの左端に表示されるウェブサイトのアイコンを設定します

この文の目的は何ですか?コードをコピーコードは次のとおりです。 <link rel="...

JavaScriptのポイントごとのシリーズでこれは何ですか

これを理解するおそらく、他のオブジェクト指向プログラミング言語でもthis見たことがあり、これがコン...

HTML知識ポイントの実践経験のまとめ

1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...

Dockerオーバーレイはホスト間のコンテナ相互通信を実現します

目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...

WeChatアプレットがシンプルな計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

検索エンジンのウェブサイトの入り口の無料コレクション

1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...

jQueryはテーブル行データのスクロール効果を実現します

この記事の例では、テーブル行データのスクロール効果を実現するためのjQueryの具体的なコードを参考...

WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)

目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...

Vueでlessを使用する問題を解決する

1. less依存関係をインストールします: npm install less less-loade...