问题标签 [esri-leaflet]

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 投票
1 回答
177 浏览

leaflet - 如何使用 Bootleaf / esri-leaflet 查询具有多边形层的点?

我正在使用Bootleaf IAG 框架

我不知道如何获得过滤层的边界坐标。

我正在修改 bootleaf 代码以使用多边形图层查询点。Query Widget 已经允许用户绘制多边形,但我想从我的 arcgis 服务器上托管的图层中选择一个多边形。我通过删除文本字段并允许我的用户从下拉菜单中选择多边形图层和值来修改过滤器小部件。这工作正常。

现在我需要获取layer.setWhere(where, handleError);代码的结果,并使用下面的查询来满足它。我需要selectedPolygon等于并使用查询部分中layer.setWhere(where, handleError);的边界坐标。.within

我已经尝试了很多东西,,,,L.latLngBounds等等getBounds()toGeoJSON().features[0].geometry.coordinates但我不知道如何拉出界限。什么是正确的代码?

6/8/2021 编辑(基于 Seth Lutske 的评论:

我没有提供代码沙箱有两个原因:1 - bootleaf 有很多文件,2 - 我的所有层都需要安全登录到 arcgis。希望我能提供足够的信息以在没有它的情况下获得帮助。

  1. 正在selectedPolygon改变我期待的方式吗?目前没有调用变量,selectedPolygon因为我无法弄清楚格式化它的正确方法。selectedPolygon就是我要调用的过滤结果layer.setWhere(where, handleError);。我将多边形图层设置为随着值的变化在地图上进行过滤。我可以验证它是否按预期过滤。

  2. selectedPolygon格式 - 这是我的问题所在。根据 bootleaf 层的配置方式,我似乎无法找到正确的格式。我开始var selectedPolygon = layer.features.geometry.coordinates;并得到一个几何未定义的错误。我继续尝试我能想到的所有其他代码来获得界限。

  3. 边界坐标可能不是正确的术语。我想运行一个查询来查找过滤多边形内的所有点。为了实现这一点,我的理解是我需要在within查询部分中使用过滤多边形的边界。

2021 年 6 月 8 日编辑 #2

链接可能最有利于显示图层的构建方式。我修改了这段代码以删除文本输入并添加一个下拉列表,但基本定义应该相同。

第 1605 行是function addFilter()

第 1804 行是function applyFilter()

第 1927 行是layer.setWhere(where, handleFilterError);

照片1:console.log("polygon layer", layer)

照片 1

照片 2: 展开_layers

照片 2

照片3:展开_rings(我没有找到ToGetJSON,但我ToGeoJSON在这个部分找到了。

照片 3

看起来如果我能做到那_rings我应该没问题,但这就是我缺乏知识的地方。

0 投票
0 回答
144 浏览

javascript - 使用 Leaflet 显示离线 ArcGIS Esri 地图

我需要显示托管在 Intranet 环境中的 ArcGIS ESRI 地图。我正在关注这个例子,当系统连接到互联网时它工作正常。

由于我们的地图服务器托管在 Intranet 环境中,所以我不能使用上面的示例。我进一步调查了ESRI 传单,发现它调用在线arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer以加载地图图块。我用我们的地图服务器 URL https://{our domain}/intsrv/rest/services/Cache/StreetsNightBlue/MapServer替换了这个 URL,但仍然没有加载图块。

我已经在我的项目中离线添加了所有必需的 CSS 和 JS 文件。

当我运行程序时,在控制台中它给出了 tile not found 错误。

在此处输入图像描述

更新:瓷砖现在出现但远离标记集群

在此处输入图像描述

请帮助解决此问题。

0 投票
1 回答
69 浏览

leaflet - 当图层在控件中更改时,绑定弹出窗口被删除

我有一个带有图层控件的地图,该图层控件具有在 baselayer 参数中指定的叠加层:

我指定我的图层如下:

问题是当我更改控件中的图层时,bindPopup不再调用该事件。

几乎就像图层 z-index 没有更新一样。将不胜感激任何有关我如何解决这个问题的见解。

见:https ://codepen.io/jvanulde/pen/LYyOWZo