0

As explained and asked in Slack Forum : https://osmus.slack.com/archives/C01G3D28DAB/p1721219062146369?thread_ts=1721213195.422509&cid=C01G3D28DAB

I want to use this TileServer: https://tileserver.linuxbabe.com/ with MapLibre

The style.json should be this: https://tileserver.linuxbabe.com/styles/basic-preview/style.json and, based on https://tileserver.linuxbabe.com/data/v3.json
image ,

the tiles vector URL should be this: https://tileserver.linuxbabe.com/data/v3/{z}/{x}/{y}.pbf

But If I put those two URLs in their fields in the HTML, I do not get any output :

enter image description here

This is the complete map.html file :

<!DOCTYPE html>
<html>
    <head>
     <meta charset="utf-8">
     <title>Vector Tile Map with MapLibre</title>
     <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
     <script src='https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.js'></script>
    <link href='https://unpkg.com/maplibre-gl@latest/dist/maplibre-gl.css' rel='stylesheet' />
     <style>
        body { margin: 0; padding: 0; }
        #map { position: absolute; top: 0; bottom: 0; width: 100%; }
     </style>
   </head>
   <body>
        <div id="map"></div>
        <script>
            var map = new maplibregl.Map({
                container: 'map',
                style:
                    'https://tileserver.linuxbabe.com/styles
/basic-preview/style.json',
                    zoom: 5.43,
                    center: [-3.9, 54.5]
            });


            map.on('load', function () {
              // Add a new vector tile source with ID 'linuxbabe'.
              map.addSource('linuxbabe', {
                     'type': 'vector',
                     'tiles': [
                          'https://tileserver.linuxbabe.com/data/v3/{z}/{x}/{y}.pbf'
                      ],
                      'minzoom': 6,
                      'maxzoom': 14
                });
                map.addLayer(
                   {
                        'id': 'default', // Layer ID
                        'type': 'line',
                        'source': 'linuxbabe', // ID of the tile source created above
                           // Source has several layers. We visualize the one with name 'sequence'.
                        'source-layer': 'sequence',
                        'layout': {
                                  'line-cap': 'round',
                                  'line-join': 'round'
                         },
                        'paint': {
                                   'line-opacity': 0.6,
                                   'line-color': 'rgb(53, 175, 109)',
                                   'line-width': 2
                         }
                  },
               );
            });

            map.addControl(new maplibregl.NavigationControl());

            //set max zoom level (0-24)
            map.setMaxZoom(19);
    </script>
    </body>

jsfiddle: https://jsfiddle.net/RaphyCollab/oq19abd4/2/ And here a jsbin repo : https://jsbin.com/dekujuz/edit?html,output

What am I missing and / or am I doing wrong?

1 Answer 1

0

This style is not loading because of CORS issue. Did you tried to see your console. I can clearly see the CORS issue. The tileserver should allow all origins or particular origin where you need to use these apis. The issue :enter image description here

After using Allow cors extension you can see the request to tiles are successful

enter image description here

3
  • Hi @Anup Dahal. With "Cross Domain - CORS" extension in Google Chrome , the map is now visible. But I would like to make it visible in other browsers as well
    – Raphael10
    Commented Aug 26, 2024 at 10:04
  • @Raphael10 For that you should make changes in backend , change your settings to allow all origins . This is not issues in frontend.
    – Anup Dahal
    Commented Aug 27, 2024 at 12:34
  • Hi @Anup Dahal. I finally solved thanks to these indications : github.com/smellman/…
    – Raphael10
    Commented Aug 31, 2024 at 14:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.