问题标签 [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.
javascript - 在 AttributeInspector (ESRI JS API 3.24) 的下拉列表中过滤值
我正在使用AttributeInpector在 ArcGIS ESRI 的要素图层中显示与多边形关联的属性。
我想为一个属性过滤下拉列表中的值,该属性可以具有多个可能值中的一个值,根据其他下拉列表的选定值显示在 AttributeInspector 中。
是否可以过滤掉 AttributeInspector 中的值?
是否有任何可用的 AttributeInspector 内置替代品可以实现这一点?
javascript - 鼠标悬停时在地图上显示工具提示
当用户将鼠标悬停在地图的某个区域上超过几秒钟时,我想显示一个带有属性的工具提示。
在此示例中,我试图在用户将鼠标悬停在该状态上时显示状态名称。
我已经实现了工具提示,但没有显示状态名称。工具提示为空白。
我也不确定如何实现延迟。目前,只要鼠标悬停在地图上,工具提示就会出现。
我需要它来使用 ArcGISDynamicMapServiceLayer。
这是小提琴:
HTML:
JS:
CSS:
typescript - Esri Maps PopupTemplate 的内容方法每个要素仅调用一次
我在 Angular 应用程序中使用 Esri 地图,并将弹出窗口呈现为 Angular 组件,其中包含从PopupTemplate
'scontent
方法发布的数据:
这很好用,除非在给定点有多个特征的情况。当用户循环浏览特征时,如果他/她返回到已经显示的特征,则不会执行内容方法,因此不会发布弹出数据。
我可以在弹出窗口中访问当前选择的要素MapView
,但我需要知道要素来自哪个图层才能正确发布数据(每个图层对于将 ArcGIS 数据处理到弹出窗口使用的模型中都有独特的要求) .
名义上,graphic.layer
应该包含图层参考,但在我的情况下,它总是null
.
有没有办法强制弹出窗口始终调用 content 方法,即使它已经为给定的功能执行过?或者,有没有办法从MapView.popup
(或我没有考虑过的其他东西)获取功能所属的图层?
如果重要,弹出窗口用于MapImageLayer
子层。
javascript - 依赖于 DOM 元素的 Angular Injectable 服务
我只是在掌握 Angular (6) 框架,它的怪癖和功能。还有一件事,我需要,但看起来,它违背了 Angular 范式——一个服务,它需要对 DOM 节点的引用。
更具体地说 - Esri Map 组件。在它的构造函数中,它需要一个 DOM 节点——地图所在的地方。由于地图将成为应用程序的中心,它会被整个应用程序的多个组件使用。为此,我希望它在服务中。问题是 - 我该怎么做?我对此提出了解决方案,但我想与更有经验的 Angular 开发人员一起验证它。
所以我有一个MapComponent
类似于单例组件的组件——在应用程序中只包含一次。
还有我的 mapService,我会在其他服务中引用它
这确实有效,我只是想知道,这是否是正确的方法。我要求这些地图对象可以通过其他组件访问,以添加/删除/更改地图图层、绘制/渲染几何图形和其他地图内容。
javascript - ESRI Maps 设置 MapView.extent 截断显示范围的顶部和底部
我有一个用给定范围初始化的 ESRI 地图。当我用它的初始范围绘制地图时,实际显示的范围被截断了大约 5-10%,所以我的 FeatureLayers 上的一些特征位于初始视图之外。似乎地图正在尝试形成“最佳拟合”缩放级别,以将请求的范围与地图大小相匹配,但在这种情况下,最佳拟合会裁剪掉视图的顶部和底部。
我创建了一个演示来展示这种行为:
在https://codepen.io/asgallant/pen/rrWmLW现场观看。红色框是请求的范围。如果您更改地图容器的高度,地图会在某些断点处更改其初始缩放级别。
我想将地图配置为始终选择完全封装请求范围的默认缩放级别,因此不会切断任何功能。我知道我可以将缩放级别设置为任何我想要的,但我有数百张不同的地图,需要不同的缩放级别来实现既定目标。有谁知道如何做到这一点?
javascript - 如何在 esri 中创建具有其他不同颜色的短划线?我们可以使用 SimpleLineSymbol 实现这一点吗?
示例: -------------- 这里用红色和黄色替代破折号。
promise - 使用 esri/request 触发的多个 XHR 请求在使用 dojo/promise/all 处理时返回延迟
我在处理使用 esri/request 触发的多个 XHR 请求时遇到了困难。
我正在使用下面的代码触发多个请求
为了解决这个问题,我正在编写以下代码
我在上述所有的成功回调中得到了延迟的结果。
有人可以告诉我为什么我被推迟而不是实际结果吗?
arcgis - 拖动 MapView 时图形项不刷新
有什么方法可以在拖动地图时使中心点移动?目前似乎无法在拖动时添加图形或删除它们。
https://jsfiddle.net/wrtqn2e3/3/
我使用 Esri Js API 4.8。
如果您查看 INPUT 窗口,您会看到“指针移动”事件触发,因为即使在拖动时坐标也会刷新。
发生这种情况是否有可能的解决方法?
提前致谢。
javascript - 范围问题 - 从外部函数调用内部 dojo 函数
我有一个在 dojo 函数的 require 部分之外的函数。
此函数需要调用位于 dojo 要求块中的函数。
如何从位于 dojo 要求块之外的函数调用要求代码块中的函数?
也许更多的应用程序流程将证明需要
- 主窗口应用程序产生一个子窗口
- 主窗口向具有将接收消息的全局函数的子窗口发送消息
- 子窗口接收消息
- 外部函数解析消息并确定映射需要更新(产生的子窗口是映射窗口,在require部分加载了很多ESRI模块)
- 子窗口函数需要调用 dojo 的 require 代码块中的函数来执行实际的 ESRI 相关任务