Leaflet自定义图标标记旋转一个角度,变换样式冲突

2024-02-04

我通过以下演示重现了这个问题:http://jsfiddle.net/baoqger/deL0yuvg/9/ http://jsfiddle.net/baoqger/deL0yuvg/9/

在我的项目中,我有一个自定义图标标记,我想在某些情况下旋转图标。

我在创建图标时添加一个类名:

const uturnIcon = L.icon({
  iconUrl: 'http://joshuafrazier.info/images/firefox.svg',
  iconSize: [30, 30],
  className: 'u-turn-icon'
})

并为该类添加 css 样式,如下所示:

.u-turn-icon {
  transform: rotate(20deg) !important
}

问题是默认情况下,图标 img 的 style 属性为transform: translate3d,所以默认的变换和我添加的变换样式之间存在冲突。默认的变换样式是由leaflet本身创建的,当我们缩放地图时,该属性的值也会更新。

那么如何解决这个问题呢?


您的代码的第一个问题是它围绕其角而不是中心旋转图标,因此它最终出现在错误的位置。第二个问题是Leaflet使用了图标style.transform属性来定位它,因此每次地图缩放时旋转都会被覆盖。

The Leaflet.RotatedMarker https://github.com/bbecquet/Leaflet.RotatedMarker@IvanSanchez 建议的插件看起来是一个优雅的解决方案。如果您无法使用该插件,以下方法可能适合您:

CSS 样式:

.u-turn-icon {
   transform-origin: center;
}

JavaScript:

map.on("zoomstart", function(ev) {
  let icons = document.getElementsByClassName("u-turn-icon");
  for(let icon of icons) {
    icon.style.visibility = "hidden";
  }
});

map.on("zoomend", function(ev){
  let icons = document.getElementsByClassName("u-turn-icon");
  for(let icon of icons) {
    icon.style.transform += " rotate(20deg)";
    icon.style.visibility = "";
  }
});

map.fire("zoomend");

此代码只是在每次缩放地图时重置每个 U 型转弯图标的旋转。该图标在缩放开始时隐藏,并在结束时显示,因此您不会注意到它在旋转。 Azoomend在地图缩放之前手动触发事件以将图标设置为正确的旋转。

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

Leaflet自定义图标标记旋转一个角度,变换样式冲突 的相关文章

  • 在 jQuery datepicker buttonImage 属性中引用 Bootstrap 图标?

    我应该为 jQuery 日期选择器使用什么值buttonImage属性 我想将 Bootstrap 日历图标与 jQuery 日期选择器一起使用 当像这样引用时 我可以在 html 页面中使用图标图像 i class icon calend
  • 使用 R 中的传单库绘制跨越国际日期变更线的路线

    我有兴趣使用 R 的传单库绘制从滑铁卢到台湾的路线 路线的坐标是使用 geosphere 中的 gcIntermediate 函数获得的 然而 该路线涉及穿越国际日期变更线 因此该路线在地图边缘被切断 并在顶部与直线连接 我得到的情节 错误
  • CSS3 在动画元素上旋转导致不调用单击事件

    好吧 这个给我带来了很多问题 使用css3时 webkit transform具有任何类型 3d 旋转的样式 例如rotateY 30deg 给这个旋转的对象绑定点击事件是极其不可靠的 请参阅下面的示例代码或查看这把小提琴 http jsf
  • Mac OSX 捆绑包的图标

    我编译了一个名为 MyBundle bundle 的 Mac OSX 捆绑包 它用作另一个应用程序的插件 我希望捆绑包有一个独特的图标 因此我将 Info plist 文件设置为
  • 自定义 Applescript 应用程序图标

    我已经创建了我的苹果脚本 https en wikipedia org wiki AppleScript 对其进行了测试 将其另存为 app 并且可以正常工作 现在 如何为其设置自定义图标 我做了一些谷歌搜索并尝试了一些不同的事情 但无法让
  • 未捕获的错误:地图容器已初始化

    我正在使用 React JS 制作网页 我的目标是在前端显示地图 我正在使用react leaflet npm 包来实现同样的目的 但是 我收到以下错误 Error Uncaught Error Map container is alrea
  • python seaborn重置回matplotlib

    我使用的是seaborn版本o 4和matplotlib版本1 42 我有一个图表通过简单的绘图命令显示线条和标记 例如 plt plot 1 5 3 8 4 bo 由于潜在的错误 https github com mwaskom seab
  • 使用 MahApps.Metro 时应用程序图标拉伸至标题栏高度

    使用 MahApps Metro 时如何防止应用程序图标拉伸到标题栏的高度 无论使用什么尺寸的图标 图标和标题栏边缘之间都没有空格 我也尝试过使用多尺寸图标 但这不起作用 这是一个开箱即用的示例 强烈启发自mahapps punker76
  • 使用 leaflet 确定直线是否与多边形相交

    我正在尝试找出确定一条线是否穿过多边形的最佳方法 其中该线上的点可能不会落在多边形内 如下图所示 我的数据是多个多边形 我希望查看一条线 纬度 经度到纬度 经度 是否穿过 1 个或多个多边形 leaflet 有一个 leaflet pip
  • 如何更改 JAR 文件中的常规 JAVA COFFEE CUP 图标

    我可以更改框架中的 JAVA COFFEE CUP 图标 上 左 但如何更改 RUNNABLE JAR 文件的常规 JAVA COFFEE CUP 图片 是否有可能仅更改一个 JAR 文件的文件图标 谢谢 JAR 文件没有图标 操作系统为其
  • leaflet + gMapCatcher-更改zxy模板

    我在用着leaflet由 gMapCatcher 生成的图块 那里的文件名完全不同 例如 传单中的缩放级别 17 是 gMapCatcher 的级别 0 我需要更改 url 模板 http s somedomain com blabla z
  • 在 ios 7 设备上获取多个应用程序图标

    我在 ios7 iPhone5 设备 上遇到一个奇怪的错误 我在ios7上使用xcode5安装了iPhone应用程序我的问题是每当我在设备上安装应用程序时 我都会收到多个应用程序图标 多次使用相同的名称 我还尝试通过我的系统使用不同的应用程
  • canvas:如何在一个变换语句中完成平移、倾斜、旋转...?

    最近几天我在学习 变换 现在我知道如何通过变换的矩阵进行平移 旋转 倾斜 缩放 但如果我想在一个转换语句中执行上述所有操作 我该怎么办 ctx transform a b c d e f 当我们想要通过变换旋转某些东西时 我们必须为每个参数
  • 如何在 Xcode 中设置 Mac 应用程序的图标?

    我学习了很多关于编写 Objective C 代码和在 Interface Builder 中进行设计的知识 并且我想为我的简单程序设置图标 我将相同的 JPG 添加到 Icon Composer 中的所有尺寸字段并获得了 ICNS 但我不
  • 如何解决消息有效负载类型为:Mule 中的 BufferInputStream 异常

    我已经转换为字节数组 但我不断收到此错误 ERROR 2015 02 25 11 12 30 517 ESR HTTP Request Listener worker 01 org mule exception DefaultMessagi
  • Leaflet Map - 第二个多边形使第一层不可点击

    我正在制作美国社区调查数据地图 目前我有一个主要层 如下所示plotMerge incomePerCapita 它运作良好 有一个完全充实的弹出窗口 图像等等 当我添加第二层以提供县和地区边界时 区域边界变得不可单击 似乎被新层掩盖了 如果
  • 以编程方式更改应用栏图标

    在我的 C Windows Phone 8 应用程序中 我有一个 AppBar 我的这个 AppBar 上有两个图标 一个是新图标 一个是编辑图标 我想将编辑图标更改为每当按下时返回图标 然后每当再次按下时返回编辑图标 我已经尝试过这段代码
  • 如何向标准集合编辑器添加图标?

    我有一个自定义控件 它利用TCollection and TCollectionItem 在集合编辑器中 我想向每个列表项添加图标 该列表项由内部TImageList 在其父组件内 集合项本身代表图标 我想在这个编辑器中显示相应的图标 如何
  • 传单圆圈绘制/编辑问题

    我第一次制作传单 并面临绘制圆圈和编辑 更改圆圈位置 的问题 我面临的问题是 编辑 移动 圆从一个位置到另一位置会改变其半径 Note 请尝试在给定的小提琴中在地图顶部创建圆圈 然后通过单击编辑按钮将其移动到底部 如果我在地图的顶部创建圆圈
  • 是否可以将自定义 HTML 添加到传单图层组和图层控件

    有什么方法可以将自定义 HTML 注入图层组和图层控件中吗 在我们的应用程序中 我们实现了滑块 输入 范围 来调整不透明度设置 并且很明显 在其控制容器内部的基础层上使用专用滑块是有意义的 没有选项或参数可以修改此控件 理想情况下 我们希望

随机推荐

  • 如何将数据 POST 到另一个 Web 应用程序(跨域)

    请考虑以下场景 有两个 Web 应用程序 App1 和 App2 用户可以通过表单在 App1 上提交他的信息 单击 App1 上的特定按钮 链接时 相同的数据应发布到 App2 上的页面 并且用户也应重定向到 App2 上的同一页面 我需
  • 学说 2 命令行打印 Cygwin 配置

    我正在尝试在我的项目中使用 Doctrine 2 但是当我尝试访问命令行以从数据库导入实体以生成文件时 它会打印以下代码 vendor bin doctrine dir d 0 cd d cd doctrine orm bin pwd Se
  • 手动标记的 Span 中带有 ENT_TYPE 的模式不起作用

    作为实现此目的的替代方法 IN 属性中具有多项条目的模式 https stackoverflow com questions 61975312 patterns with multi terms entries in the in attr
  • 内部矩阵尺寸误差必须符合绘图时的误差

    我正在尝试绘制函数 f x x e x cos x 从 0 到 2 pi 我尝试过运行 x 0 pi 100 2 pi y x exp x cos x 然而 每次我尝试设置 y Matlab 向我抛出 使用 时出错 并表示内部矩阵维度必须一
  • Hibernate 中的 UTF-8

    当我从 MySql 数据库的查询中检索信息时遇到问题 如下所示 Je b tirai UTF 8 字符集和 Hibernate 或 MySql 存在错误 请问我该如何解决这个问题 这是我的休眠设置
  • 对连接表进行序列化查询

    我正在尝试使用sequelize 查询连接表 这是模型 db client belongsToMany db user through db clientUser onDelete cascade db user belongsToMany
  • 浏览器在动画/移动元素上未触发鼠标悬停/鼠标输入

    如果您有一个具有移动动画的元素 mouseover and mouseenter除非用户移动鼠标 否则不会触发事件 为了演示 请使用 jQuery 尝试下面的代码块 如果您将鼠标放在移动的 div 前面 这样当 div 经过时您就不会移动鼠
  • MySql Xml 函数的性能?

    我对新的感到非常兴奋Mysql XML 函数 http dev mysql com doc refman 5 1 en xml functions html function updatexml 现在我终于可以在我的老式关系数据库中嵌入 面
  • Flurry Analytics 在 Android 模拟器中“运行”时崩溃,但在模拟器中“调试”时不会崩溃

    根据标题 我有一个应用程序 它使用乱舞分析 http www flurry com flurry analytics htmlAndroid 的库 我已经关注了他们的基本步骤 http support flurry com index ph
  • 在 Windows 桌面上制作 3D 对象动画

    我需要在 Windows 桌面上绘制用户可以与之交互的 3D 对象 例如狗 并为其设置动画 用户交互假设点击 显示 不规则形状 对话框以供用户输入等 您知道实现这一目标的具体方法吗 我想我有几种选择 有什么建议吗 哪一种最好 最简单 WPF
  • Microsoft OLE DB Provider for SQL Server 错误“80040e14”“=”附近的语法不正确

    当我尝试使用以下代码从数据库检索数据时 出现此错误 有人可以帮忙吗 set rs Server CreateObject ADODB recordset sql SELECT from COMPANY WHERE COMPANY ID Re
  • 如何使用 pandas 绘制阴影条?

    我试图通过填充图案而不是 仅 颜色来实现差异化 我如何使用熊猫做到这一点 在 matplotlib 中可以通过传递hatch所讨论的可选参数here https stackoverflow com questions 14279344 ho
  • Python 中的条件评估调试语句

    Python 有几种打印 trace 输出的方法 print import logging stdout write可用于打印调试信息 但它们都有一个缺点 即使记录器的阈值太高或流关闭 Python 仍会评估打印语句的参数 严格评估 这可能
  • 将一些 LISP 转换为 C#

    我正在阅读保罗 格雷厄姆的垃圾邮件计划 http www paulgraham com spam html想要更好地理解它 但我的 LISP 真的很生疏 他有一段计算概率的代码片段 let g 2 or gethash word good
  • R 中 glmnet 图的图例标签错误

    我修改了这篇文章中的函数 在 R 中的 glmnet 图中的曲线上添加标签 https stackoverflow com questions 30560689 adding labels on curves in glmnet plot
  • Windows 进程的内存映射是什么样的?

    这可能是一个重复的问题 我想知道windows进程的内存映射是什么样的 我正在寻找细节 请提供博客 文章和其他相关文献的链接 我总是喜欢能够真正看到事物 而不仅仅是阅读理论 事实证明 根据这篇博文 http www nynaeve net
  • 更改seabornpairplot对角线颜色

    当使用sns pairplot我有这个 import seaborn as sns iris sns load dataset iris g sns pairplot iris markers kind reg diag kind kde
  • 将 Char 转换为 AnsiChar 或 WideChar (Delphi)

    我正在将一个非常旧的 10 多年 应用程序升级到最新的 Delphi XE 我不断遇到很多错误 Incompatible types WideChar and AnsiChar 我只是将 char 转换为正确的类型 例如 AWideChar
  • IIS下的NetworkService有空的AppData路径

    在 Windows 8 上使用 IIS 8 我设置了一个以以下身份运行的应用程序池Network Service 在页面的代码中 我调用 Environment GetFolderPath Environment SpecialFolder
  • Leaflet自定义图标标记旋转一个角度,变换样式冲突

    我通过以下演示重现了这个问题 http jsfiddle net baoqger deL0yuvg 9 http jsfiddle net baoqger deL0yuvg 9 在我的项目中 我有一个自定义图标标记 我想在某些情况下旋转图标