官术网_书友最值得收藏!

  • Leaflet.js Essentials
  • Paul Crickard III
  • 384字
  • 2021-09-03 10:03:02

Tile layer providers

Now that you have created your first map, you are probably wondering how to change the tile layer to something else. There are several tile layer providers, some of which require registration. This section will present you with two more options: Thunderforest and Stamen. Thunderforest provides tiles that extend OpenStreetMap, while Stamen provides more artistic map tiles. Both of these services can be used to add a different style of basemap to your Leaflet map.

Thunderforest provides five tile services:

  • OpenCycleMap
  • Transport
  • Landscape
  • Outdoors
  • Atlas (still in development)

To use Thunderforest, you need to point your tile layer to the URL of the tile server. The following code shows how you can add a Thunderforest tile layer:

var layer = new L.TileLayer('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png');
map.addLayer(layer);

The preceding code loads the landscape tile layer. To use another layer, just replace landscape in the URL with cycle, transport, or outdoors. The following screenshot shows the Thunderforest landscape layer loaded in Leaflet:

Stamen provides six tile layers; however, we will only discuss the following three layers:

  • Terrain (available in the United States only)
  • Watercolor
  • Toner

The other three are Burning Map, Mars and Trees, and Cabs & Crime. The Burning Map and Mars layers require WebGL, and Trees and Cabs & Crime are only available in San Francisco. While these maps have a definite wow factor, they are not practical for our purposes here.

Note

Learn about the Stamen tile layers, including Burning Map, Mars and Trees, and Cabs & Crime, at http://maps.stamen.com.

Stamen requires you to follow the same steps as Thunderforest, but it includes an additional step of adding a reference to the JavaScript file. After the reference to your Leaflet file, add the following reference:

<script type="text/javascript" src="http://maps.stamen.com/js/tile.stamen.js?v1.2.4"></script>

Instead of L.TileLayer(), Stamen uses L.StamenTileLayer(tile set name). Replace the tile set name with terrain, watercolor, or toner. Lastly, add addLayer() to the map as shown in the following code:

var layer = new L.StamenTileLayer("watercolor");
map.addLayer(layer);

Stamen's tile layers are not your typical basemap layers; they are works of cartographic art.

Tip

Stamen has an online tool to edit map layers and save the output as an image. To create your own artistic map images, go to http://mapstack.stamen.com.

The following screenshot shows the Stamen watercolor layer loaded in Leaflet. As you zoom in, you will see more detail:

主站蜘蛛池模板: 长顺县| 天峻县| 乌恰县| 轮台县| 铅山县| 佛教| 郓城县| 宁强县| 肥东县| 湘阴县| 和林格尔县| 皋兰县| 安泽县| 黎川县| 威信县| 兰坪| 和林格尔县| 唐河县| 广东省| 日土县| 红河县| 台江县| 永靖县| 淮安市| 通道| 泾阳县| 海丰县| 淮滨县| 平陆县| 两当县| 宝丰县| 句容市| 拉孜县| 安徽省| 册亨县| 吕梁市| 北海市| 开化县| 北票市| 上蔡县| 石屏县|