如何将特定国家/地区的地图加载到 OpenStreetMap 中?
How can I load a country specific map into OpenStreetMap?
我想加载特定国家/地区的地图(比如 https://openstreetmap.in). I'm using the following code snippet, but it loads the map from https://www.openstreetmap.org:
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
]
谁能告诉我如何加载特定国家/地区的地图?
您需要创建自定义图块层,即所谓的 OSM 层或 XYZ 层。 OpenLayer 示例 Localized OpenStreetMap and XYZ 解释了如何指定自定义图块源。
openstreetmap.in 的图块服务器 URL 是 https://{a-c}.tiles.mapbox.com/v4/openstreetmap.1b68f018/{z}/{x}/{y}@2x.png?access_token=pk.eyJ1IjoiamluYWxmb2ZsaWEiLCJhIjoiY2psejFtZG8wMWhnMjNwcGFqdTNjaGF2MCJ9.ZQVAZAw8Xtg4H2YSuG4PlA
。
您的代码应该大致如下所示:
var osmIndia = new TileLayer({
source: new OSM({
attributions: [
'© <a href="https://www.mapbox.com/">mapbox</a> and <a href="https://www.openstreetmap.org/">OpenStreetMap</a>'
],
url: 'https://{a-c}.tiles.mapbox.com/v4/openstreetmap.1b68f018/{z}/{x}/{y}@2x.png?access_token=pk.eyJ1IjoiamluYWxmb2ZsaWEiLCJhIjoiY2psejFtZG8wMWhnMjNwcGFqdTNjaGF2MCJ9.ZQVAZAw8Xtg4H2YSuG4PlA'
})
});
[...]
layers: [
osmIndia
]
我想加载特定国家/地区的地图(比如 https://openstreetmap.in). I'm using the following code snippet, but it loads the map from https://www.openstreetmap.org:
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
]
谁能告诉我如何加载特定国家/地区的地图?
您需要创建自定义图块层,即所谓的 OSM 层或 XYZ 层。 OpenLayer 示例 Localized OpenStreetMap and XYZ 解释了如何指定自定义图块源。
openstreetmap.in 的图块服务器 URL 是 https://{a-c}.tiles.mapbox.com/v4/openstreetmap.1b68f018/{z}/{x}/{y}@2x.png?access_token=pk.eyJ1IjoiamluYWxmb2ZsaWEiLCJhIjoiY2psejFtZG8wMWhnMjNwcGFqdTNjaGF2MCJ9.ZQVAZAw8Xtg4H2YSuG4PlA
。
您的代码应该大致如下所示:
var osmIndia = new TileLayer({
source: new OSM({
attributions: [
'© <a href="https://www.mapbox.com/">mapbox</a> and <a href="https://www.openstreetmap.org/">OpenStreetMap</a>'
],
url: 'https://{a-c}.tiles.mapbox.com/v4/openstreetmap.1b68f018/{z}/{x}/{y}@2x.png?access_token=pk.eyJ1IjoiamluYWxmb2ZsaWEiLCJhIjoiY2psejFtZG8wMWhnMjNwcGFqdTNjaGF2MCJ9.ZQVAZAw8Xtg4H2YSuG4PlA'
})
});
[...]
layers: [
osmIndia
]