问题标签 [esri-javascript-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
113 浏览

javascript - 在 AttributeInspector (ESRI JS API 3.24) 的下拉列表中过滤值

我正在使用AttributeInpector在 ArcGIS ESRI 的要素图层中显示与多边形关联的属性。

我想为一个属性过滤下拉列表中的值,该属性可以具有多个可能值中的一个值,根据其他下拉列表的选定值显示在 AttributeInspector 中。

是否可以过滤掉 AttributeInspector 中的值?

是否有任何可用的 AttributeInspector 内置替代品可以实现这一点?

0 投票
1 回答
1590 浏览

javascript - 鼠标悬停时在地图上显示工具提示

当用户将鼠标悬停在地图的某个区域上超过几秒钟时,我想显示一个带有属性的工具提示。

在此示例中,我试图在用户将鼠标悬停在该状态上时显示状态名称。

我已经实现了工具提示,但没有显示状态名称。工具提示为空白。

我也不确定如何实现延迟。目前,只要鼠标悬停在地图上,工具提示就会出现。

我需要它来使用 ArcGISDynamicMapServiceLayer。

这是小提琴:

工具提示小提琴

HTML:

JS:

CSS:

0 投票
1 回答
452 浏览

typescript - Esri Maps PopupTemplate 的内容方法每个要素仅调用一次

我在 Angular 应用程序中使用 Esri 地图,并将弹出窗口呈现为 Angular 组件,其中包含从PopupTemplate'scontent方法发布的数据:

这很好用,除非在给定点有多个特征的情况。当用户循环浏览特征时,如果他/她返回到已经显示的特征,则不会执行内容方法,因此不会发布弹出数据。

我可以在弹出窗口中访问当前选择的要素MapView,但我需要知道要素来自哪个图层才能正确发布数据(每个图层对于将 ArcGIS 数据处理到弹出窗口使用的模型中都有独特的要求) .

名义上,graphic.layer应该包含图层参考,但在我的情况下,它总是null.

有没有办法强制弹出窗口始终调用 content 方法,即使它已经为给定的功能执行过?或者,有没有办法从MapView.popup(或我没有考虑过的其他东西)获取功能所属的图层?

如果重要,弹出窗口用于MapImageLayer子层。

0 投票
0 回答
157 浏览

javascript - 依赖于 DOM 元素的 Angular Injectable 服务

我只是在掌握 Angular (6) 框架,它的怪癖和功能。还有一件事,我需要,但看起来,它违背了 Angular 范式——一个服务,它需要对 DOM 节点的引用。

更具体地说 - Esri Map 组件。在它的构造函数中,它需要一个 DOM 节点——地图所在的地方。由于地图将成为应用程序的中心,它会被整个应用程序的多个组件使用。为此,我希望它在服务中。问题是 - 我该怎么做?我对此提出了解决方案,但我想与更有经验的 Angular 开发人员一起验证它。

所以我有一个MapComponent类似于单例组件的组件——在应用程序中只包含一次。

还有我的 mapService,我会在其他服务中引用它

这确实有效,我只是想知道,这是否是正确的方法。我要求这些地图对象可以通过其他组件访问,以添加/删除/更改地图图层、绘制/渲染几何图形和其他地图内容。

0 投票
1 回答
300 浏览

javascript - 使用 ArcGIS 的 Javascript:InfoWindow 不显示字段中的值

我在显示世界所有国家/地区的另一个要素图层之上有一个包含特定国家的要素图层。

如果您单击这些特定国家/地区,则会弹出一个信息窗口。信息窗口应显示国家名称。但事实并非如此。

弹出内容丢失

代码如下。它有什么问题?

0 投票
2 回答
336 浏览

javascript - ESRI Maps 设置 MapView.extent 截断显示范围的顶部和底部

我有一个用给定范围初始化的 ESRI 地图。当我用它的初始范围绘制地图时,实际显示的范围被截断了大约 5-10%,所以我的 FeatureLayers 上的一些特征位于初始视图之外。似乎地图正在尝试形成“最佳拟合”缩放级别,以将请求的范围与地图大小相匹配,但在这种情况下,最佳拟合会裁剪掉视图的顶部和底部。

我创建了一个演示来展示这种行为:

在https://codepen.io/asgallant/pen/rrWmLW现场观看。红色框是请求的范围。如果您更改地图容器的高度,地图会在某些断点处更改其初始缩放级别。

我想将地图配置为始终选择完全封装请求范围的默认缩放级别,因此不会切断任何功能。我知道我可以将缩放级别设置为任何我想要的,但我有数百张不同的地图,需要不同的缩放级别来实现既定目标。有谁知道如何做到这一点?

0 投票
1 回答
67 浏览

javascript - 如何在 esri 中创建具有其他不同颜色的短划线?我们可以使用 SimpleLineSymbol 实现这一点吗?

示例: -------------- 这里用红色和黄色替代破折号。

0 投票
1 回答
116 浏览

promise - 使用 esri/request 触发的多个 XHR 请求在使用 dojo/promise/all 处理时返回延迟

我在处理使用 esri/request 触发的多个 XHR 请求时遇到了困难。

我正在使用下面的代码触发多个请求

为了解决这个问题,我正在编写以下代码

我在上述所有的成功回调中得到了延迟的结果。

有人可以告诉我为什么我被推迟而不是实际结果吗?

0 投票
0 回答
197 浏览

arcgis - 拖动 MapView 时图形项不刷新

有什么方法可以在拖动地图时使中心点移动?目前似乎无法在拖动时添加图形或删除它们。

https://jsfiddle.net/wrtqn2e3/3/

我使用 Esri Js API 4.8。

如果您查看 INPUT 窗口,您会看到“指针移动”事件触发,因为即使在拖动时坐标也会刷新。

发生这种情况是否有可能的解决方法?

提前致谢。

0 投票
2 回答
41 浏览

javascript - 范围问题 - 从外部函数调用内部 dojo 函数

我有一个在 dojo 函数的 require 部分之外的函数。

此函数需要调用位于 dojo 要求块中的函数。

如何从位于 dojo 要求块之外的函数调用要求代码块中的函数?

也许更多的应用程序流程将证明需要

  • 主窗口应用程序产生一个子窗口
  • 主窗口向具有将接收消息的全局函数的子窗口发送消息
  • 子窗口接收消息
  • 外部函数解析消息并确定映射需要更新(产生的子窗口是映射窗口,在require部分加载了很多ESRI模块)
  • 子窗口函数需要调用 dojo 的 require 代码块中的函数来执行实际的 ESRI 相关任务