JavaScript APIで使用できるカスタムベースマップをArcGIS.Comに追加しますか?


8

ArcGIS.comで、ベースレイヤーとして使用するチェックボックスをオンにすることで、レイヤーをベースマップとして追加することができます。

ベースレイヤーとして使用

しかし、私が使用してマップを消費するとき:

var mapDeferred = esri.arcgis.utils.createMap("<guid>", "map", {
                mapOptions: {
                    slider: true,
                    nav: false
                }
            });

ベースマップが表示されません。ベースマップとして使用できるコンテンツを定義するルールはありますか?


簡単な質問ですが、必要なWebサービスをベースマップとして追加した後、それをカスタマイズしてポップアップを有効にできましたか?単純なシェープファイルを追加してポップアップを有効にする場合と同じように。試しましたが、シェープファイルをベースマップとして追加したい場合、ポップアップを有効にする機能が利用できなくなっているようです。これは私が投稿した質問です。gis.stackexchange.com
questions / 31825 /

回答:


7

はい、これは間違いなく可能です、ここに例があります:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
    <title></title>
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.5/js/dojo/dijit/themes/tundra/tundra.css">
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.5/js/esri/dijit/css/Popup.css">
    <style>
      html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
      #map{ margin: 0; padding: 0; }
    </style>
    <script>var dojoConfig = { parseOnLoad: true };</script>
    <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.5"></script>
    <script>
      dojo.require("dijit.layout.BorderContainer");
      dojo.require("dijit.layout.ContentPane");
      dojo.require("esri.map");
      dojo.require("esri.arcgis.utils");

      var map;
      esri.config.defaults.geometryService = new esri.tasks.GeometryService('http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer');
      function init() {
        var agol_map = new esri.arcgis.utils.createMap("c11215b898ec46369f855c82b28fc65e", "map", {
          mapOptions: {
            slider: true,
            nav:false
          }
        });
        agol_map.addCallback(function(response) {
          // Keep a reference to the map
          map = response.map;

          dojo.connect(dijit.byId('map'), 'resize', function() { 
            dojo.connect(dijit.byId('map'), 'resize', map, map.resize);
          });
        });
      }
      dojo.ready(init);
    </script>
  </head>

  <body class="tundra">
    <div data-dojo-type="dijit.layout.BorderContainer" 
         data-dojo-props="design:'headline',gutters:false" 
         style="width: 100%; height: 100%; margin: 0;">
      <div id="map" 
           data-dojo-type="dijit.layout.ContentPane" 
           data-dojo-props="region:'center'"> 
      </div>
    </div>
  </body>
</html>

更新: 重要なのは、デフォルトのジオメトリサービスを追加することです。

esri.config.defaults.geometryService = new esri.tasks.GeometryService('http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.