Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
184 views
in Technique[技术] by (71.8m points)

Formatting the style of Mapbox component

I am currently using React as Frontend and ReactMapGL as my map component and I'm trying to style it so that all my continents have different colors. I tried styling in all the different templates provided, But I can only change the water and land color in http://studio.mapbox.com . Is it possible to make this change happen?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You'd have to overlay a continent layer on your map and then conditionally style it based on your own color/continent mapping logic.

You can get the data (geojson) for the continent layer by searching for it.


  const continentLayer = {
    id: "continents",
    type: "fill",
    source: {
      type: "geojson",
      data: continents
    },
    paint: {
      "fill-color": [
        "match",
        ["get", "CONTINENT"],
        "Asia",
        "red",
        "Europe",
        "Green",
        /* default */ "yellow"
      ]
    }
  };

  <Layer {...continentLayer} />

Here's a codesandbox with a working example: https://codesandbox.io/s/color-xd1cw?file=/src/App.js (also take a look at continent.json)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...