【问题标题】:Mapbox GL JS Change the color from the default markerMapbox GL JS 从默认标记更改颜色
【发布时间】:2018-11-26 17:00:13
【问题描述】:

我开始失去理智了。

根据Mapbox API,我应该能够更改默认标记颜色,但我在文档中没有找到任何不使用自定义标记的示例,并且最有可能的语法不起作用。

我正在使用mapbox-gl-js/v0.44.2

var marker = new mapboxgl.Marker({ "color": "#b40219" })
                .setLngLat([0, 0])
                .addTo(map);

使用此代码,地图显示时没有标记,如果我删除颜色选项,标记会正确显示,但颜色错误。

对我搞砸的地方有什么建议吗?

【问题讨论】:

    标签: mapbox mapbox-gl-js mapbox-marker


    【解决方案1】:
    marker = new mapboxgl.Marker({
            color: $parameters.UpdatedMarkerColor,
            draggable: false
        });
    

    【讨论】:

    【解决方案2】:

    拧 jQuery

    setMarkerColor(marker, color) {
          let markerElement = marker.getElement();
          markerElement
            .querySelectorAll('svg g[fill="' + marker._color + '"]')[0]
            .setAttribute("fill", color);
          marker._color = color;
        },
    

    【讨论】:

      【解决方案3】:

      如果您需要即时更改默认标记的颜色,您可以使用这种函数(使用 jQuery 获取元素的子元素):

      function setMarkerColor(marker, color) {
          var $elem = jQuery(marker.getElement());
          $elem.find('svg g[fill="' + marker._color + '"]').attr('fill', color);
          marker._color = color;
      }
      

      【讨论】:

      • 我刚刚复制并粘贴了它,效果很好。谢谢。
      【解决方案4】:

      在使用默认标记 SVG 元素时支持自定义颜色,因为 v0.45.0,您正在使用 v0.44.2

      发行说明:

      https://github.com/mapbox/mapbox-gl-js/releases

      【讨论】:

      • 语法正确const marker = new mapboxgl.Marker({ "color": "#b40219" })
      猜你喜欢
      • 2016-02-23
      • 2020-05-03
      • 2020-06-08
      • 2023-03-21
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      • 2016-11-08
      相关资源
      最近更新 更多