javascript - 如何将特定国家/地区的 map 加载到 OpenStreetMap 中?

标签 javascript openlayers openstreetmap

我想加载特定国家/地区的 map (例如 https://openstreetmap.in )。我正在使用以下代码片段,但它从 https://www.openstreetmap.org 加载 map :

layers: [
    new ol.layer.Tile({
        source: new ol.source.OSM()
    })
]

有人可以告诉我如何加载特定于国家/地区的 map 吗?

最佳答案

您需要创建一个自定义图 block 图层,即所谓的 OSM 图层或 XYZ 图层。 OpenLayer 示例 Localized OpenStreetMapXYZ解释如何指定自定义图 block 源。

openstreetmap.in 的图 block 服务器 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
]

关于javascript - 如何将特定国家/地区的 map 加载到 OpenStreetMap 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52550324/

相关文章:

javascript - 在 Javascript 中按值给出一系列目标的排名分数

javascript - OpenLayers bindTo 不是函数

csv - 从 OSM 文件创建一个区域中所有地址的 CSV 文件

javascript - 将容器 #id 添加到 .load ('$(this).attr("href"));

javascript - Jquery 动画卡在图像中间的动画中

javascript - 在 OpenLayers 中将 CSS 用于矢量层样式

javascript - Leaflet - 基于两个标记实时绘制道路路径

android - 如何使用 GraphHopper 在 android osm map 中添加 via(watpoints) 点

javascript - Protractor E2E 测试 - 如何通过其中继器获取表格标题?

javascript - 如何在 OpenLayers 中向 LineString 添加文本?