Style lines with a data-driven property
This source code of this example is adapted from the MapLibre GL JS example - Style lines with a data-driven property.
Uncomment the following line to install leafmap if needed.
In [1]:
Copied!
# %pip install "leafmap[maplibre]"
# %pip install "leafmap[maplibre]"
In [2]:
Copied!
import leafmap.maplibregl as leafmap
import leafmap.maplibregl as leafmap
In [3]:
Copied!
# import os
# os.environ["MAPTILER_KEY"] = "YOUR_API_KEY"
# import os
# os.environ["MAPTILER_KEY"] = "YOUR_API_KEY"
In [4]:
Copied!
m = leafmap.Map(center=[-122.483831, 37.828826], zoom=16, style="streets")
geojson = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {"color": "#F7455D"},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [-122.4833858013153, 37.829607404976734],
                    [-122.4830961227417, 37.82932776098012],
                    [-122.4830746650696, 37.82932776098012],
                    [-122.48218417167662, 37.82889558180985],
                    [-122.48218417167662, 37.82890193740421],
                    [-122.48221099376678, 37.82868372835086],
                    [-122.4822163581848, 37.82868372835086],
                    [-122.48205006122589, 37.82801003030873],
                ],
            },
        },
        {
            "type": "Feature",
            "properties": {"color": "#33C9EB"},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [-122.48393028974533, 37.829471820141016],
                    [-122.48395174741744, 37.82940826466351],
                    [-122.48395174741744, 37.829412501697064],
                    [-122.48423874378203, 37.829357420242125],
                    [-122.48422533273697, 37.829361657278575],
                    [-122.48459815979002, 37.8293425906126],
                    [-122.48458743095398, 37.8293447091313],
                    [-122.4847564101219, 37.82932776098012],
                    [-122.48474299907684, 37.829331998018276],
                    [-122.4849334359169, 37.829298101706186],
                    [-122.48492807149889, 37.82930022022615],
                    [-122.48509705066681, 37.82920488676767],
                    [-122.48509168624878, 37.82920912381288],
                    [-122.48520433902739, 37.82905870855876],
                    [-122.48519897460936, 37.82905870855876],
                    [-122.4854403734207, 37.828594749716714],
                    [-122.48543500900269, 37.82860534241688],
                    [-122.48571664094925, 37.82808206121068],
                    [-122.48570591211319, 37.82809689109353],
                    [-122.4858346581459, 37.82797189627337],
                    [-122.48582661151886, 37.82797825194729],
                    [-122.4859634041786, 37.82788503534145],
                    [-122.48595803976059, 37.82788927246246],
                    [-122.48605459928514, 37.82786596829394],
                ],
            },
        },
    ],
}
source = {"type": "geojson", "data": geojson}
m.add_source("lines", source)
# Use a get expression (https://maplibre.org/maplibre-style-spec/expressions/#get)
# to set the line-color to a feature property value.
layer = {
    "id": "lines",
    "type": "line",
    "source": "lines",
    "paint": {"line-width": 3, "line-color": ["get", "color"]},
}
m.add_layer(layer)
m
m = leafmap.Map(center=[-122.483831, 37.828826], zoom=16, style="streets")
geojson = {
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "properties": {"color": "#F7455D"},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [-122.4833858013153, 37.829607404976734],
                    [-122.4830961227417, 37.82932776098012],
                    [-122.4830746650696, 37.82932776098012],
                    [-122.48218417167662, 37.82889558180985],
                    [-122.48218417167662, 37.82890193740421],
                    [-122.48221099376678, 37.82868372835086],
                    [-122.4822163581848, 37.82868372835086],
                    [-122.48205006122589, 37.82801003030873],
                ],
            },
        },
        {
            "type": "Feature",
            "properties": {"color": "#33C9EB"},
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [-122.48393028974533, 37.829471820141016],
                    [-122.48395174741744, 37.82940826466351],
                    [-122.48395174741744, 37.829412501697064],
                    [-122.48423874378203, 37.829357420242125],
                    [-122.48422533273697, 37.829361657278575],
                    [-122.48459815979002, 37.8293425906126],
                    [-122.48458743095398, 37.8293447091313],
                    [-122.4847564101219, 37.82932776098012],
                    [-122.48474299907684, 37.829331998018276],
                    [-122.4849334359169, 37.829298101706186],
                    [-122.48492807149889, 37.82930022022615],
                    [-122.48509705066681, 37.82920488676767],
                    [-122.48509168624878, 37.82920912381288],
                    [-122.48520433902739, 37.82905870855876],
                    [-122.48519897460936, 37.82905870855876],
                    [-122.4854403734207, 37.828594749716714],
                    [-122.48543500900269, 37.82860534241688],
                    [-122.48571664094925, 37.82808206121068],
                    [-122.48570591211319, 37.82809689109353],
                    [-122.4858346581459, 37.82797189627337],
                    [-122.48582661151886, 37.82797825194729],
                    [-122.4859634041786, 37.82788503534145],
                    [-122.48595803976059, 37.82788927246246],
                    [-122.48605459928514, 37.82786596829394],
                ],
            },
        },
    ],
}
source = {"type": "geojson", "data": geojson}
m.add_source("lines", source)
# Use a get expression (https://maplibre.org/maplibre-style-spec/expressions/#get)
# to set the line-color to a feature property value.
layer = {
    "id": "lines",
    "type": "line",
    "source": "lines",
    "paint": {"line-width": 3, "line-color": ["get", "color"]},
}
m.add_layer(layer)
m
