微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缺少 ESRI 弹出窗口最大化按钮

如何解决缺少 ESRI 弹出窗口最大化按钮

目前正在使用 ESRI ArcGIS API for JavaScript 4.15 在地图中显示弹出窗口。 但是缺少 ArcGIS API for JavaScript 3.35 提供的最大化按钮

enter image description here

是否有任何要设置以显示相同的配置。

解决方法

据我所知,新的 API 没有开箱即用的功能。不过不用担心,您可以通过向弹出窗口添加自定义操作来实现它。

请参阅我为您制作的示例以获取想法。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
  <title>Popup actions | ArcGIS API for JavaScript 4.18</title>

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

  <link rel="stylesheet" href="https://js.arcgis.com/4.18/esri/themes/light/main.css" />
  <script src="https://js.arcgis.com/4.18/"></script>

  <script>
    require(["esri/Map","esri/layers/FeatureLayer","esri/views/MapView"],function (
      Map,FeatureLayer,MapView
    ) {
      const map = new Map({
        basemap: "gray-vector"
      });

      const view = new MapView({
        container: "viewDiv",map: map,center: [-117.08,34.1],zoom: 11
      });

      const toggleFullScreenAction = {
        type: "toggle",title: "Full Screen",id: "toggle-full-screen",className: "esri-icon-maximize"
      };

      view.popup.actions.add(toggleFullScreenAction);


      const template = {
        title: "Trail run",content: "{name}"
      };

      featureLayer = new FeatureLayer({
        url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/TrailRuns/FeatureServer/0",outFields: ["*"],popupTemplate: template
      });
      map.add(featureLayer);

      function toggleFullScreen() {
        if (!document.fullscreenElement) {
          document.getElementsByClassName('esri-popup__main-container')[0].requestFullscreen()
            .catch(err => {
              alert(`Error attempting to enable full-screen mode: ${err.message} (${err.name})`);
            });
        } else {
          if (document.exitFullscreen) {
            document.exitFullscreen();
          }
        }
      }

      view.popup.on("trigger-action",function (event) {
        if (event.action.id === "toggle-full-screen") {
          toggleFullScreen();
        }
      });



    });
  </script>
</head>

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

</html>

要运行代码段,请复制并另存为 html 文件。全屏操作在代码段中不起作用,我猜是因为它是嵌入的,但不确定。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。