{z} / {x} / {y}在“图块”中是什么意思:[location.origin + location.pathname +“ countries / {z} / {x} / {y} .pbf”],

时间:2019-04-15 15:11:30

标签: javascript

我是javascript新手,正在尝试弄清楚某些代码的语法。曾尝试使用Google搜索类似问题,但似乎找不到任何相关问题。也许我没有使用正确的关键字进行搜索:(

我正试图从以下方面理解代码:
https://github.com/klokantech/mapbox-gl-js-offline-example/blob/gh-pages/index.html

以下是代码摘录:

<script>
// mapboxgl.accessToken = 'pk.your-own-code-here-for-online-maps';
mapboxgl.accessToken = 'NOT-REQUIRED-WITH-YOUR-VECTOR-TILES-DATA';
var style = {
  "version": 8,
  "sources": {
    "countries": {
      "type": "vector",
      // "url": "mapbox://map-id"
      // "url": "http://tileserver.com/layer.json", 
      "tiles": [location.origin+location.pathname+"countries/{z}/{x}/{y}.pbf"],
      "maxzoom": 6
    }
  },

我要理解的代码行就是此问题的标题中所述。

有人可以向我解释吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

这些只是(子)字符串,稍后将被相应的值替换。就其本身而言,它们没有任何意义或功能。

Mapbox Style Specification指向TileJSON specification,其中说:

  

[..] {z},{x}和{y}(如果存在)将替换为相应的整数。

然后,库可能会按照以下方式进行操作:

let url = "{x}/{y}/{z}".replace( "{x}", 1337 ).replace("{y}", -99).replace("{z}", 1.333)

您当然会在实际设置中使用变量代替数字文字。