Hinzufügen einer benutzerdefinierten Grundkarte in ArcGIS.Com, die in der Javascript-API verwendet werden kann?

8

Sie können eine Ebene als Grundkarte in ArcGIS.com hinzufügen, indem Sie das Kontrollkästchen als Basisschicht verwenden aktivieren:

Als Basisschicht verwenden

Aber wenn ich die Karte benutze mit:

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

Die Grundkarte wird nicht angezeigt. Gibt es Regeln, die definieren, welcher Inhalt als Grundkarte verwendet werden kann?

MathiasWestin
quelle
Eine kurze Frage: Nachdem Sie den erforderlichen Webdienst als Grundkarte hinzugefügt haben, konnten Sie ihn anpassen und Popups aktivieren? Auf die gleiche Weise, wie wir es tun können, wenn wir ein einfaches Shapefile hinzufügen und dann Popups darauf aktivieren. Ich habe es versucht, aber es scheint, dass die Popup-Funktion zum Aktivieren nicht mehr verfügbar ist, wenn Sie ein Shapefile als Grundkarte hinzufügen möchten. Dies ist die Frage, die ich gepostet habe, gis.stackexchange.com/questions/31825/…
Sam007

Antworten:

7

Ja, das ist definitiv möglich, hier ein Beispiel:

<!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>

Update: Der Schlüssel besteht darin, einen Standard-Geometriedienst hinzuzufügen:

esri.config.defaults.geometryService = new esri.tasks.GeometryService('http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer');
Derek Swingley
quelle