ArcGIS API for JavaScript 3で特定の範囲のベースマップを制限しますか?


8

現在、アプリケーションでArcGIS JS API ver 3.3 / 3.5を使用しています。

米国のみのベースマップを制限したい。たとえば、ズームイン、ズームアウトなどのデフォルトのナビゲーション機能を米国の国のみに使用できます。

次のことを試してください:

  1. アプリケーションに米国の範囲コードを設定しましたが、ズームアウトすると全世界の地図が表示されるので、一定の範囲に制限したい

  2. この質問の概要:ArcGIS Javascript APIでのパンとズームを制限しますか?

  3. この質問を使用して通りのベースマップを制限するが、マップを制限できない:ArcGIS API for JavaScriptで独自のベースマップを使用していますか?

  4. 私が使っているこの私のアプリケーションのサンプルマップを。

回答:


4

これを行う1つの方法の例を次に示します。http//jsfiddle.net/gh/gist/library/pure/6050806/


4

これは私がこれを行うために使用したコードの例です。マップの最初の範囲を設定して米国を表示する場合、これはあなたのケースでうまくいきます:

//This function limits the extent of the map to prevent users from scrolling 
//far away from the initial extent.
function limitMapExtent(map) {
    var initialExtent = map.extent;
    map.on('extent-change', function(event) {
        //If the map has moved to the point where it's center is 
        //outside the initial boundaries, then move it back to the 
        //edge where it moved out
        var currentCenter = map.extent.getCenter();
        if (!initialExtent.contains(currentCenter) && 
            event.delta.x !== 0 && event.delta.y !== 0) {

            var newCenter = map.extent.getCenter();

            //check each side of the initial extent and if the 
            //current center is outside that extent, 
            //set the new center to be on the edge that it went out on
            if (currentCenter.x < initialExtent.xmin) {
                newCenter.x = initialExtent.xmin;
            }
            if (currentCenter.x > initialExtent.xmax) {
                newCenter.x = initialExtent.xmax;
            }
            if (currentCenter.y < initialExtent.ymin) {
                newCenter.y = initialExtent.ymin;
            }
            if (currentCenter.y > initialExtent.ymax) {
                newCenter.y = initialExtent.ymax;
            }
            map.centerAt(newCenter);
        }
    });
}

これが動作するjsFiddleの例です:http://jsfiddle.net/sirhcybe/aL1p24xy/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.