37

我正在使用 LeafletJS 将地图组件添加到我的应用程序中。除了地图的本地化,一切都很好。一些国家名称以当地语言显示(我假设)。

有没有办法用英文显示国家名称?

在此处输入图像描述

这是我使用的当前代码

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                attribution : '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
                noWrap      : true 
}).addTo(map);
4

3 回答 3

20

只要有此类数据可用,OSM 的标准图块服务器就会尝试以本地语言显示标签(本地表示当前显示的国家/地区的语言,而不是您的本地语言)。由tile服务器提供的 tile 已经包含标签,因此您以后无法删除它们。但是你可以:

并始终记住遵守您选择的磁贴服务器的磁贴使用政策。

于 2013-09-03T14:44:39.860 回答
5

解决这个问题最简单的方法是

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
                attribution : '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
                noWrap      : true 
}).addTo(map);

用这个替换上面的链接

L.tileLayer('https://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png', {
                attribution : '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
                noWrap      : true 
}).addTo(map);
于 2021-10-05T04:56:18.600 回答
1

您需要做的就是使用底图而不是 openstreetmap

const mainLayer = L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png', {
  minZoom: 3,
  maxZoom: 17,
  attribution: '&copy; <a href="https://carto.com/">carto.com</a> contributors'
});
mainLayer.addTo(this.map);
于 2020-12-22T09:28:24.380 回答