fdelaneau
fdelaneau

Reputation: 135

Mapbox GL JS Change the color from the default marker

I’m starting to loose my mind.

According to Mapbox API I should be able to change the default marker color but I didn't find any exemple in the documentation that doesn't use custom markers and the most likely syntax doesn't work.

I am using mapbox-gl-js/v0.44.2

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

With this code, the map is shown without the marker and if I remove the color option the marker does display correctly but with the wrong color.

Any suggestion to where I messed up ?

Upvotes: 11

Views: 12571

Answers (5)

Jordan Davis
Jordan Davis

Reputation: 21

when setting up the marker, put the color in the brackets:

new mapboxgl.Marker({ "color": "#b40219" }) //this changes color to a dark red// .setLngLat([-74.5, 40]) .addTo(map);

Upvotes: 2

Francisco F
Francisco F

Reputation: 43

marker = new mapboxgl.Marker({
        color: $parameters.UpdatedMarkerColor,
        draggable: false
    });

Upvotes: 0

Max
Max

Reputation: 934

Screw jQuery

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

Upvotes: 9

Anton Suslov
Anton Suslov

Reputation: 103

And if you need to change the color of the default marker on the fly you may use this kind of function (used jQuery to get element's children):

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

Upvotes: 4

pathmapper
pathmapper

Reputation: 1937

Support for custom colors when using the default Marker SVG element is available since v0.45.0, you are using v0.44.2.

Release notes:

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

Upvotes: 6

Related Questions