当前位置: 首页 > 知识库问答 >
问题:

传单改变标记颜色

方树
2023-03-14

有没有一种方法可以随意改变本地传单中的标记颜色?我使用的是svg元素,可以进行样式化。我知道使用Mapbox.js是可能的

编辑:为了澄清我打算做的:如果你通过双击或其他方式向地图添加标记,它应该有随机的颜色。为了实现这一点,我想使用svg图标来对标记进行样式化。

这是我的代码:

    myIcon = L.icon({
      iconUrl: "icon_33997.svg",
      iconAnchor: pinAnchor
    });

    newMarker = L.marker(lat, long], {
      icon: myIcon
    });

共有1个答案

洪知
2023-03-14

因此,这是谷歌中最受欢迎的传单图标样式之一,但它没有一个没有第三方的解决方案,我在React中遇到了这个问题,因为我们需要动态颜色为我们的路线和图标。

我提出的解决方案是使用leaflet.diviconhtml属性,它允许您将计算值的字符串传递到DOM元素中。

例如,我创建了一个标记样式,如下所示:

const myCustomColour = '#583470'

const markerHtmlStyles = `
  background-color: ${myCustomColour};
  width: 3rem;
  height: 3rem;
  display: block;
  left: -1.5rem;
  top: -1.5rem;
  position: relative;
  border-radius: 3rem 3rem 0;
  transform: rotate(45deg);
  border: 1px solid #FFFFFF`

const icon = Leaflet.divIcon({
  className: "my-custom-pin",
  iconAnchor: [0, 24],
  labelAnchor: [-6, 0],
  popupAnchor: [0, -36],
  html: `<span style="${markerHtmlStyles}" />`
})

markerhtmlstyles中的background-color更改为您自定义的颜色,就可以使用了。

 类似资料:
  • 我很难弄明白为什么传单方法会改变多边形的颜色,而不是我的标记的颜色。 多边形很好: 但是标记不会改变颜色: 我使用Angular和传单一起制作地图(我使用Angular-传单-指令)。 以下是代码的mouseover部分: 当标记get被mouse覆盖时,它会激发,然后尝试调用LeafletEvent.target上的setStyle。我已经安慰了。记录了LeafletEvent,确实有它的目标部

  • 我有一个应用程序,我在谷歌地图上显示附近药店的标记。当我单击标记时,我希望标记更改颜色。当我单击其他标记时,它应该将之前标记的颜色更改为默认颜色,并将更改新标记的颜色。这是随机工作的,我的意思是有时标记颜色会发生变化,有时它会保持默认颜色。 getMarkerIcon()方法的代码是: 注意:我在每一行中都添加了调试器,以查看代码的哪些部分没有运行,奇怪的是,当调试器出现在这一行时 它正在编译,但

  • 我正在使用传单和标记集群插件,我想动态修改从孩子在里面的集群图标。 我的代码可以工作,但不需要我想要的:在iconCreateFunction函数中,我想计算“ClusterBatteriEfaible”的标记,但我不知道如何将其作为参数发送。有什么建议吗?

  • 我创建了一个包含单个项目的菜单。 这是我在工具栏中的一些活动中使用的,单击时它会下拉一个菜单,目前只有一个选项,但将来可能会更多。 除了图标外,一切都很好,它是传统3点白色的矢量图像。根据showAsAction在更改颜色时的设置。 目前show AsAction设置为从不,因此单击时会显示一个菜单,这就是我想要的,但是图标变为深灰色。如果我将此选项设置为“始终”,则图标变为白色,但我丢失了下拉菜

  • 我试图在点击时更改标记的图标编号。我使用的是角度谷歌地图。我正在使用本地资产文件夹而不是服务API设置iNurl。 单击标记时,如何更改上述图标。

  • 我可以知道一种通过Javascript改变谷歌地图标记颜色的方法吗..我是这方面的新手,任何帮助都将不胜感激,谢谢。 我使用以下代码创建标记