创建自定义底图

这个示例演示了如何创建自定义底图并添加 BasemapToggle 小部件到视图中。basemap 是 baseLayer 和 引用图层的简单容器。

程序完整源代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
  <title>Custom Basemap - 4.5</title>

  <style>
    html,
    body,
    #viewDiv {
      padding: 0;
      margin: 0;
      height: 100%;
      width: 100%;
    }
  </style>

  <link href="https://js.arcgis.com/4.5/esri/css/main.css" rel="stylesheet" type="text/css">
  <script src="https://js.arcgis.com/4.5"></script>

  <script>
    require([
      "esri/config",
      "esri/layers/WebTileLayer",
      "esri/Map",
      "esri/Basemap",
      "esri/widgets/BasemapToggle",
      "esri/views/SceneView",
      "dojo/domReady!"
    ], function(esriConfig, WebTileLayer, Map,
      Basemap, BasemapToggle, SceneView
    ) {

      // 处理 cors 
      esriConfig.request.corsEnabledServers.push("a.tile.stamen.com",
        "b.tile.stamen.com", "c.tile.stamen.com", "d.tile.stamen.com");

      // 使用第三方缓存服务创建一个图层
      var mapBaseLayer = new WebTileLayer({
        urlTemplate: "http://{subDomain}.tile.stamen.com/terrain/{level}/{col}/{row}.png",
        subDomains: ["a", "b", "c", "d"],
        copyright: "Map tiles by <a href=\"http://stamen.com/\">Stamen Design</a>, " +
          "under <a href=\"http://creativecommons.org/licenses/by/3.0\">CC BY 3.0</a>. " +
          "Data by <a href=\"http://openstreetmap.org/\">OpenStreetMap</a>, " +
          "under <a href=\"http://creativecommons.org/licenses/by-sa/3.0\">CC BY SA</a>."
      });

      // 使用 WebTileLayer 创建一个 Basemap 实例。
      // thumbnailUrl 将用于为 BasemapToggle 小部件 提供图片
      var stamen = new Basemap({
        baseLayers: [mapBaseLayer],
        title: "Terrain",
        id: "terrain",
        thumbnailUrl: "https://stamen-tiles.a.ssl.fastly.net/terrain/10/177/409.png"
      });

      var map = new Map({
        basemap: "satellite",
        ground: "world-elevation"
      });

      var initCamera = {
        heading: 124.7,
        tilt: 82.9,
        position: {
          latitude: 40.713906,
          longitude: -111.848111,
          z: 1990
        }
      };

      var view = new SceneView({
        container: "viewDiv",
        map: map,
        camera: initCamera
      });

      view.then(function() {
        // 添加 BasemapToggle 
        var toggle = new BasemapToggle({
          titleVisible: true,
          view: view,
          nextBasemap: stamen
        });

        view.ui.add(toggle, "top-right");
      });
    });
  </script>
</head>

<body>
  <div id="viewDiv"></div>
</body>

</html>

程序运行效果:沙箱地址:https://developers.arcgis.com/javascript/latest/sample-code/sandbox/index.html?sample=basemap-custom

(完)

results matching ""

    No results matching ""