向多个图层组添加标记

2023-11-30

我使用 StyledLayerControl 和 markcluster 使用 leafletjs 创建了一张地图:https://www.wiva.at/v2/basemap-kartentest/每个标记代表一个适合一个类别(=图层组)的研究项目。 不幸的是,我有一些项目分为三类(例如靠近格拉茨的莱布尼茨市最南端的项目)。到目前为止,这个项目由三个标记表示,我得到的反馈令人困惑,尤其是在蜘蛛网视图中。 我遇到了一个问题,当将标记分配给变量,然后将变量添加到多个图层组时,取消选择一个图层组会使标记也会在其他图层组中消失。 那么是否有机会将这样的项目表示为一个标记但出现在多个图层组中?

如果上面的链接不够,我可以添加我的代码(但我担心它有点混乱)。

感谢您的任何提示。

EDIT:

到目前为止,我简单地添加了我的标记:

    //Green Industry projects
    //new (running) projects
    var industry_new = new L.LayerGroup();

    //Renewable Gasfield, laufend, Wiva, ONLINE
    L.marker([46.753278, 15.586361], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>Renewable Gasfield</span></p><b>Projektleitung:</b> Energie Steiermark<br /><b>Standort:</b> Gabersdorf<br /><b>Kategorie:</b> Grüne Industrie<br /><b>Status:</b> laufend<br /><p>Ganzheitlicher Power-to-Gas Ansatz, bei dem aus erneuerbarem Strom durch Elektrolyse grüner Wasserstoff erzeugt wird und eine zweistufige katalytische Methanisierung im großen Maßstab für eine nachhaltige Energieversorgung in den Bereichen Energie, Mobilität und Industrie vereint.</p><a href='https://www.wiva.at/v2/portfolio-item/renewable-gasfield/'>Details...</a>");

    //HyTechbasis 4 WIVA, laufend, Wiva, ONLINE
    L.marker([48.155278, 14.048056], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>HyTechbasis 4 WIVA</span></p><b>Projektleitung:</b> FRONIUS INTERNATIONAL GmbH<br /><b>Standort:</b> Thalheim<br /><b>Kategorie:</b> Grüne Industrie<br /><b>Status:</b> laufend<br /><p>Hydrogen Technology Basis for WIVA</p><a href='https://www.wiva.at/v2/portfolio-item/hytechbasis-4-wiva-hydrogen-technology-basis-for-wiva/'>Details...</a>");

    //Co2EXIDE WIVA, laufend, Wiva, ONLINE
    L.marker([48.33826938809515, 14.317320611066839], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>CO2EXIDE</span></p><b>Projektleitung:</b> (österreichischer Partner) Energieinstitut an der JKU Linz<br /><b>Standort:</b> AGH Krakau Demo-Anlage<br /><b>Kategorie:</b> Grüne Industrie<br /><b>Status:</b> laufend<br /><p>CO2-basierte Elektrosynthese von Ethylen Oxiden</p><a href='http://www.co2exide.eu/'>Details...</a>");
        
    //CORALIS WIVA, laufend, Wiva, ONLINE
    L.marker([48.288029, 14.324497], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>CORALIS</span></p><b>Projektleitung:</b> Fundación CIRCE / Öst. Partner: Energieinstitut an der JKU Linz<br /><b>Standort:</b> Linz<br /><b>Kategorie:</b> Grüne Industrie<br /><b>Status:</b> laufend<br /><p>Erfahrungen im Bereich der Industriesymbiose zusammenstellen</p><a href='https://cordis.europa.eu/project/id/958337'>Details...</a>");

    //UpHY, laufend, Wiva, ONLINE
    L.marker([48.14735053624901, 16.492216234765525], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>UpHy I</span></p><b>Projektleitung:</b> OMV<br /><b>Standort:</b> Wien<br /><b>Kategorie:</b> Grüne Mobilität<br /><b>Status:</b> laufend<br /><p>Im Project UpHy I wird die Basis für die Demonstration der Wertschöpfungskette für die grüne H2- Mobilität von der Produktion in einer Elektrolyse über die Logistik bis zur 350 bar Betankungsinfrastruktur für eine kommerziell betriebene Buslinie mit Brennstoffzellenantrieb entwickelt.</p><a href='https://www.wiva.at/v2/portfolio-item/uphy-upscaling-of-green-hydrogen-for-mobility-and-industry/'>Details...</a>");

    //Underground Sun.Conversion, laufend, Wiva-Netzwerk
    L.marker([48.028889, 13.691944], {icon: industryIcon} ).addTo(industry_new).bindPopup("<p><span style='font-size:12pt;font-weight:bold; color:#0099b8;'>Underground Sun.Conversion</span></p><b>Projektleitung:</b> RAG Austria AG<br /><b>Standort:</b> Pilsbach<br /><b>Kategorie:</b> Grüne Industrie<br /><b>Status:</b> abgeschlossen<br /><p>Chemical storage of renewable energy in porous subsurface reservoirs with exemplary testbed</p><a href='https://www.underground-sun-conversion.at/'>Details...</a>");

我对每个图层组都这样做。也许这不是最好的方法,但对于我作为一个 java 和 leaflet 初学者来说,这是最简单的方法,我很高兴到目前为止一切顺利;-)


不幸的是,这是一个未解决的用户体验问题。主要问题是,在某些用例中,您需要一个 OR 过滤器(听起来这就是您的情况,因为您的标记在适合相关类别的每个组中都是重复的);而在其他情况下,您需要一个 AND 过滤器...

因此,如果您想用所有适合的标记填充地图at least一个选定的类别(即实现 OR 过滤器),一种可能的解决方案可能是使用“虚拟”空图层组进行选择控制,每当用户选择发生变化时,清除并使用相关标记重新填充地图。

例如,如果您有地图“overlayadd/remove”事件:

// "Dummy" layers to be used in selection control
const dummy1 = L.layerGroup();
const dummy2 = L.layerGroup();

// Actual categories with possibly common Markers
const category1 = L.layerGroup([markerA, markerB]);
const category2 = L.layerGroup([markerA, markerC]);

// Intermediate group to easily clear map content
const content = L.layerGroup().addTo(map);

map.on("overlayadd overlayremove", () => {
  // Step 1: remove all content
  content.clearLayers();
  // Step 2: re-add layers that fit at least one selection
  if (map.hasLayer(dummy1)) {
    category1.addTo(content)
  }
  if (map.hasLayer(dummy2)) {
    category2.addTo(content)
  }
  // etc.
});

如果您使用 Leaflet.markercluster,您可以简单地将其用作content上面代码片段中的变量。

您还必须为每个项目仅创建 1 个标记,不再为每个类别重复它们。在正常使用情况下,应该避免这种情况,但这里我们专门处理这种情况。例如,如果标记 A 匹配类别 1 和 2,您可以执行以下操作:

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

向多个图层组添加标记 的相关文章

  • Leaflet maxBounds - 边界不起作用

    我尝试了 Leafletjs maxBounds我在 Mapbox 找到的示例代码 https www mapbox com mapbox js example v1 0 0 maxbounds 下面你可以找到我的完整代码 也在jsfidd
  • 导出/下载各种格式的闪亮传单地图?

    我创建了一个闪亮的仪表板来分析芝加哥的犯罪行为 因此 我还制作了芝加哥的传单地图 我们可以根据标记看到芝加哥哪个地区发生了多少犯罪事件 我有三个过滤器小部件 日期 犯罪类型和位置 基于这 3 个小部件 用户可以随意使用 并且每次都会使用所选
  • 无法使用 R 的 leaflet 包循环生成多个地图

    这是新来的 对 R 来说也相对较新 所以请原谅 apriori 并让我知道我在这篇文章中做错了什么 以避免将来烦扰其他人 我正在尝试创建传单地图序列 1971 年 9 月至 1972 年 4 月 最后 我想将它们压缩成闪亮的 并让用户播放
  • Leaflet:突然我收到此错误消息:无法加载资源:服务器响应状态为 403 ()

    突然我收到此错误消息 这对我来说很奇怪 因为我没有接触过地图部分 Failed to load resource the server responded with a status of 403 在寻找线索时 我发现了这个过时的信息 ht
  • 传单通过图层选择添加/删除图例

    我是 Leaflet JavaScript 的新手 并且一直在努力让图例仅在从图层控件中选择特定图层时才显示地图 我有三层 其中一层我希望没有图例 另外两层有相应的图例 我遇到了一个例子 但未能使其工作 Add and remove leg
  • 使用 Javascript 循环将 Leaflet GeoJSON 层从 GeoServer 添加到数组

    我正在尝试使用循环将 GeoJSON 图层添加到数组中 然后将它们显示在我的地图上 我的目标是拥有一个像这样的变量 场景 json 1 第 1 层 场景 json 2 第 2 层 等等 myURL http localhost 8080 g
  • 如何在反应传单中使用带有动态标记的边界

    我有以下功能反应组件 它可以在 边界 框中正确显示两个静态标记 该框适合两个标记 我希望能够传递一系列纬度和经度值以供地图显示 但我不知道如何做到这一点 这是工作的静态示例 import React from react import Ma
  • 将多个标记放入图层组中

    我正在尝试使用 for 循环创建多个标记 将坐标存储到数组中 然后 我想将这些标记放入图层组中 并能够使用 L control layers 显示 隐藏它们 问题是只会显示最后创建的标记 我知道这是与闭包和作用域相关的东西 但我是 Java
  • Leaflet.js:如何从地图中删除多个图层

    我正在使用 Leaflet js 制作地图 现在我想从地图中删除添加的图层 通过单击输入 按钮 所有选中的复选框将更改为未选中 并且所有相应的图层将从地图中删除 要从地图中删除图层 需要该图层的 ID 该 id 等于相应复选框的 id 这就
  • 如何从 shapefile leaflet R 访问多边形信息

    我使用以下方法制作了伦敦地图https data london gov uk dataset statistical gis boundary files london https data london gov uk dataset st
  • 使用 R 中的传单库绘制跨越国际日期变更线的路线

    我有兴趣使用 R 的传单库绘制从滑铁卢到台湾的路线 路线的坐标是使用 geosphere 中的 gcIntermediate 函数获得的 然而 该路线涉及穿越国际日期变更线 因此该路线在地图边缘被切断 并在顶部与直线连接 我得到的情节 错误
  • Postgis - ST_within 没有做我想做的事。如何在空心区域中找到一个点?

    请参阅丝网印刷 我在 Postgis 中运行了一个空间查询 以返回地图上某个点所在的选区 区域 该查询使用ST within函数 其中点位于多边形内 正如您从打印中看到的 该点实际上并不在 York Outer 的多边形区域 内 尽管从技术
  • 如何从 Asp Label.Text 加载航路点坐标

    我在其中硬核值的第一个代码
  • 如何在 R 中按下传单弹出窗口时创建事件?

    当我单击传单多边形时 我想让 tabPanel 变为闪亮 我对如何做到这一点有一些想法 但我找不到实现它们所需的信息 我在选项卡面板中有传单 但我想在单击多边形时切换到另一个选项卡 leaflet llmap gt addTiles gt
  • ngx-leaflet/Angular 2 中具有下拉选择输入的属性绑定映射单击事件

    我有一张带有区域多边形的地图 在地图下方 我有一个下拉选择输入 可以动态读取多边形名称作为选项 当用户单击地图上的区域多边形时 我希望下拉选择输入使用选定的多边形名称 作为 geojson 文件中的 名称 字段存在 进行更新 我认为实现此目
  • 传单:同一页上有多个地图

    我搜索过类似的问题 但没有找到适合我的情况的答案 我想使用 3 张传单地图 每张都有不同的内容 出现两个问题 仅显示第一个 比例和缩放控件仅显示在第三个中 我附上了一个 jsfiddle 以防你能帮忙 const mapbox L tile
  • leaflet + gMapCatcher-更改zxy模板

    我在用着leaflet由 gMapCatcher 生成的图块 那里的文件名完全不同 例如 传单中的缩放级别 17 是 gMapCatcher 的级别 0 我需要更改 url 模板 http s somedomain com blabla z
  • 如何使用 LeafLe 创建商店地图

    我希望创建一个可以交互的地图 我发现的最好的选择是传单 问题是我没有找到任何资源来解释如何创建自己的地图 我希望创建一个商场地图 用户可以在其中看到所有商店 喷泉 我怎样才能做到这一点 最好的起点是传单示例页面 http leafletjs
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • 我可以在 r 中使用传单“map_shape_click”事件来用数据表填充 box() 吗?

    我已经在网络上搜索了好几个星期 试图找到一个示例或代码来实现我想要用我的闪亮应用程序 shinydashboard 完成的任务 我是 r 的新手 我开始认为我想做的事情是不可能的 我基本上有一个带有县多边形 shapefile 的传单地图

随机推荐

  • 为什么 sphinx 在同一行上格式化我的文档字符串参数

    我对 sphinx 比较陌生 想为我的项目生成文档 我的函数之一的示例可以在 Predict py 中找到 def arima rolling forecast training set testing set order solver l
  • 加载程序集和版本控制

    我正在考虑通过提供一些预定义的接口来向现有应用程序添加一些可扩展性 这些接口可以通过放置在特定位置并由应用程序拾取的 插件 来实现 应用程序的核心很少更新 而插件更新和部署则更加频繁 基本上 有这样的设置 in core assembly
  • 带有线性渐变的CSS过渡[重复]

    这个问题在这里已经有答案了 我正在尝试向一个按钮添加一个过渡 该按钮的背景是用 css 线性渐变制作的 但它不起作用 这是我的按钮的 CSS a button background webkit gradient linear left t
  • doctrine2 和 group_concat

    我一直在浏览文档 谷歌 但没有找到任何解决方案 有没有办法在没有本机mysql的情况下使用doctrine2 DQL 执行或模仿GROUP CONCAT eg SELECT u id u name GROUP CONCAT AS user
  • 错误:您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展

    我是 WordPress 新手 上传网站后我遇到了这个错误 该网站运行良好一段时间 然后就发生了这种情况 输入 URL 后 此文本将显示 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展 转到 php ini 但找不
  • 使用自定义成员资格和角色提供程序在 MVC 中实现 IPrincipal 和 IIdentity

    我一直坚持自定义 iprincpal 和 iidentity 对象的实现 我现在花了一天的时间来搜索如何实施这些权利并用更多信息来扩展它 我想扩展信息 Context User Identity Name使用全名或其他名称等自定义变量 ED
  • 使用“if”语句检查后出现空指针异常

    我遇到了一个非常烦人的错误 说我遇到了空指针异常 但有一个 if 语句来检查文本是否为空 然后再继续 public String getFileData throws IOException String file name C Users
  • 使用 Passport js failureRedirect 方法发回数据

    我有一个 Passport js 本地注册策略 它使用 successRedirect 和 failureRedirect 方法 问题是 如果注册过程出现错误 Passport 只会重定向回注册表单 表单中没有任何数据 app post s
  • 您可以通过其中的符号对齐文本吗?

    我想显示这样的电子邮件地址列表 email protected email protected email protected email protected email protected hinxterpexterp email pro
  • VBA在循环期间在数组中存储多列然后返回值

    我有一个宏 它将用户定义的函数 代码中的 R ajseasonX13 应用于工作表 NSA 中的多个列 然后返回工作表 SA 中的值 问题是我的代码一次仅将该函数应用于一个列 一旦 VBA 不断在选项卡 NSA 和 SA 之间来回移动 结果
  • 如何在 Spring config.xml 中配置 Cron 时区?

    我有一个带有 Cron 任务的 Spring 配置 xml 文件 该任务在我的机器上定期执行 如何在 xml 文件中配置此任务以使用莫斯科时区 与我的时区不同
  • 更改浏览器缩放级别

    我需要在我的网站上创建 2 个按钮来更改浏览器缩放级别 由于图像大小和布局问题 我请求浏览器缩放而不是 css 缩放 嗯 这可能吗 我听到了相互矛盾的报道 尽管在 Firefox 中不起作用 但在 IE 和 chrome 中可以使用 img
  • sci-kit learn:使用 X.reshape(-1, 1) 重塑数据

    我正在训练一个用于文本分类的 python 2 7 11 分类器 在运行时我收到一条已弃用的警告消息 表明我不知道代码中的哪一行导致了它 错误 警告 但是 代码运行良好并给了我结果 AppData Local Enthought Canop
  • Haskell Esqueleto 将列子集投影到自定义记录列表

    在所有的例子中我都看到了结果埃斯克莱托被投影到元组列表中或实体记录 例如 previousLogItems lt select from li gt do orderBy desc li LogItemId limit 10 return
  • 在我的 iOS 应用程序中使用 IOKit 会导致我的应用程序被拒绝吗?

    开发人员 正如提到的EricaIOKit是一个半私有框架 有人有在应用程序商店应用程序中使用它的经验吗 我想用它来获取 IMEI 和 ICCID 号码 如果您调用任何未记录的 Apple 框架 您的应用程序将被拒绝 因此 人们不太可能有在应
  • 如何处理 IE 8 中缺少 JavaScript Object.bind() 方法

    我正在编写一些 JavaScript 它使用Object bind method funcabc function x y z this myx x this playUB function w if this myx null do bl
  • 有谁知道协议缓冲区的 Ada 插件吗?

    我正在寻找用于协议缓冲区的 Ada 插件 看起来除了 Ada 之外 几乎所有语言插件都可用或正在开发中 嗯 我唯一发现的是这篇论文 不幸的是 我没有找到任何翻译工具的源代码 即你所说的plugin 我唯一能告诉的是该工具是用 C 开发的 U
  • 将向量的向量打印到 ostream

    请考虑以下代码 我正在尝试将向量的向量输出到 ostream include
  • 如何从任何字符串网址获取网站名称[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我已经给出了包含任何有效 url 的字符串 我必须从给定的网址中找到网站的名称 我也忽略了子域 like http www yahoo com gt yahoo www google
  • 向多个图层组添加标记

    我使用 StyledLayerControl 和 markcluster 使用 leafletjs 创建了一张地图 https www wiva at v2 basemap kartentest 每个标记代表一个适合一个类别 图层组 的研究