Esri Angular 7 代理项目截图

2024-02-07

我的团队目前正在开发一个具有 Angular 7 前端和 .net core 2.1 后端的 Web 应用程序。我需要做的任务之一是抓取屏幕截图并将其附加到电子邮件中。 Web 应用程序有一个 esri 地图。

为了捕获屏幕截图,我使用 html2canvas 包。除了不捕获 esri 地图内容的部分之外,它按预期工作。它捕获除 esri 地图之外的所有其他内容。

对于 html2canvas 函数调用,我将allowTaint 属性和useCORS 属性设置为true。我做了一些进一步的研究,发现了 html2canvas 的代理属性。这让我想到,这可能是地图未生成的原因。我似乎找不到任何关于如何设置 arcgis 代理的明确说明。我想知道是否有人可以帮助我解决这个问题。 任何指导或帮助将不胜感激。 以下代码片段是我的 html2canvas 调用。html2canvas

html2canvas(document.getElementById('mapContainer'), { useCORS: true, logging: true, allowTaint: true }).then((canvas) => {
console.log("Document html2canvas");
console.log(document);
screenCapture = canvas.toDataURL();
]);

2018 年 1 月 11 日更新

我就此事联系了 Esri,他们的回应是,我们不支持 Angular 7,我们只支持 Javascript。我问他们,如果我使用打印任务而不是 html2canvas 会怎么样。

这是我使用打印任务的代码片段。希望这可以帮助某人。

这是我在其中一个服务中编写的用于捕获地图的函数。看起来效果很好。我不知道使用 arcgis 提供的实用任务 url 或使用您自己的服务器来渲染这些屏幕截图是否有任何开销。由于某种原因,当我使用我的服务器打印任务实用程序 URL 时,它不起作用。

注意:下面的代码片段=&gt是箭头函数=>

 screenCapture(): Promise<any> {
      return new Promise((resolve, reject) => {
        loadModules(['esri/tasks/PrintTask', 'esri/tasks/support/PrintTemplate', 'esri/tasks/support/PrintParameters']).then(([PrintTask, PrintTemplate, PrintParameters]) => {
          try {
            var printTask = new PrintTask({
              url: 'https://utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task/',
              updateDelay: '3000'
            });
            var template = new PrintTemplate({
              layout: "map_only",
              exportOptions: {
                dpi: 96,
                width: 1871,
                height: 800
              },
            });
            var params = new PrintParameters({
              view: this.mapView,
              template: template
            });
            printTask.execute(params).then(res => { console.log(res); resolve(res); });
          }
          catch (error) {
            console.log(error);
            reject(error);
          }          
        });
      });
  } // end ofScreenCapture


你可以尝试这个库:https://github.com/WSDOT-GIS/arcgis-map-thumbnail-builder https://github.com/WSDOT-GIS/arcgis-map-thumbnail-builder

我不确定它是否与最新的 ArcGIS Javascript API 完全兼容,但您可能可以研究代码源以使其适用于您正在使用的版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Esri Angular 7 代理项目截图 的相关文章

随机推荐

  • 无法通过 Style 设置列表框的 GroupStyle?

    我正在尝试创建一个样式来为我的 ListBox 控件设置 GroupStyle 属性 但是我收到编译时错误 The Property Setter GroupStyle cannot be set because it does not h
  • 滑动侧边栏菜单 IOS 8 Swift [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法在 IOS Swift 中实现幻灯片侧边栏菜单 如 Facebook 应用程序 而不需要任何第三方库 我寻找解决方案 但我只
  • 一个好的(最好是免费的).Net 应用程序安装程序?

    我有一个使用 Sql Express 的 Net C 应用程序 开发已完成 现在我必须选择一些安装程序来部署我的应用程序 我尝试过 Microsoft Visual Studio 发布向导 但我又爱又恨它 我喜欢它 因为它可以检测客户端计算
  • Django 上的 memcache 不工作

    我有一个竞争条件Celery 受此启发 http ask github io celery cookbook tasks html ensuring a task is only execulated one at a time http
  • mysql 查询:按日期显示所有付款的摘要和发票总数

    I want this kind of result 从这些表中 我什至不知道如何用 php 来做到这一点 我什至尝试按日期加入付款和发票表 但没有成功 这是一个购买系统 此查询将按日期显示所有付款的摘要和发票总数 我想到了一个解决方案 首
  • 在Matlab中确定距海岸线的距离

    在 MATLAB 中 我有一组代表美国位置的纬度和经度对 我需要确定到最近海岸线的距离 我认为 MATLAB 有一个内置的美国经纬度数据库 我如何访问并使用它 关于如何有效确定距离还有什么建议吗 Update 后续问题 使用 meshm 时
  • 如何排除 Azure 数据工厂中复制数据活动中的行?

    我已经构建了一个具有复制数据活动的管道 该活动从Azure Data Lake并将其输出到Azure Blob Storage 在输出中 我可以看到我的某些行没有数据 我想将它们从副本中排除 在以下示例中 第二行没有有用的数据 Tenant
  • 使用“属性路由”时出现“无法找到类型或命名空间名称‘路由’”

    只是试图将一些代码从一个工作项目拼接到另一个工作项目 from 项目在您嵌入的位置使用 属性路由 Route Web API 控制器模块中的指令指示什么 HTTP 消息应路由到什么服务例程 在 from 项目中工作正常 但在 to 项目中我
  • Intellij IDEA 中的快速文档和自动弹出文档有什么区别?

    在我的 Intellij IDEA Ultimate 2017 1 中 我发现两个类似的选项 显示有关鼠标移动的快速文档 自动弹出文档 让我们本地化它们 文件 设置 编辑器 常规 常规 显示有关鼠标移动的快速文档 我看到在查看内联文档 ht
  • JavaFX 导出和 VM 参数

    我遇到的问题是无法导出 JavaFX 应用程序 我可以使用 VM 参数 IDE 内部和外部 运行它 但这远非最佳 我想要一个简单的 点击打开 体验 错误 缺少 JavaFX 运行时组件 并且需要运行该应用程序 我知道这个问题可以通过 vm
  • 如何提取消息的长度信息并从 TCP 字节流中仅提取那么多消息?

    我正在尝试通过 C 中的 Socket 发送消息 我已经阅读了许多与此相关的堆栈溢出问题 但仍然无法弄清楚它是如何工作的 假设我正在向本地主机服务器发送以下字符 M a r t i n 人们建议您可以使用 4 个字节作为长度 即 32 位
  • 在功能模块中导入 HttpClientModule

    The docs https angular io api common http HttpClientModule description on HttpClientModule say 在使用 HttpClientModule 之前 您
  • 转义 Ruby SQLite 插入的字符串

    我正在创建一个 Ruby 脚本 将一个大约 150k 行的制表符分隔文本文件导入到 SQLite 中 到目前为止是这样的 require sqlite3 file File new Users michael catalog txt str
  • UIApplication.sharedApplication.delegate.window 和 UIApplication.sharedApplication.keyWindow 有什么区别?

    谁能帮我理解以下两行之间的区别 UIApplication sharedApplication delegate window addSubview myView UIApplication sharedApplication keyWin
  • 全新安装后无法打开 Appcelerator Studio

    我遇到了一个问题 我已经从 Appcelerator 仪表板在我的 Macbook 上安装了 Appcelerator studio 并且安装成功 但是当我尝试打开它时 出现以下消息 我也尝试使用命令行安装但没有成功 打开消息中提到的日志文
  • 如何在Android应用程序中添加字体

    我正在 Android 2 2 中制作一个应用程序 我想在 Android 应用程序的 TextView 中显示印地文文本 如何在文本视图中添加 单词 请帮我 将您的字体添加到项目中的资产文件夹中并使用以下代码片段 TextView hin
  • Java Facelets 中的 和 有什么区别?

    See this http download oracle com javaee 6 javaserverfaces 2 1 docs vdldocs facelets h head html 何时以及为何使用
  • Pandas 导入 FRED 数据(pandas.io.data 或 pandas_datareader)

    这里非常简单的问题 我找不到阅读文档的答案 下面是摘录 import pandas datareader data as web pandas 0 19 x and later import datetime start datetime
  • 使用自定义 CSS 覆盖 Material2 样式

    我在 Angular 中有 Datepicker 元素 它是 Material Design 的标准组件 当我尝试为此元素设置自己的样式时 它不适用于属性 important 如何修复它 以及如何更改默认组件的样式 代码示例 mat dat
  • Esri Angular 7 代理项目截图

    我的团队目前正在开发一个具有 Angular 7 前端和 net core 2 1 后端的 Web 应用程序 我需要做的任务之一是抓取屏幕截图并将其附加到电子邮件中 Web 应用程序有一个 esri 地图 为了捕获屏幕截图 我使用 html