gpt4 book ai didi

leaflet - 在 Leaflet 中使用 Mapzen 图 block

转载 作者:行者123 更新时间:2023-12-04 04:05:42 26 4
gpt4 key购买 nike

我阅读的传单和 Mapzen文档表明,为了在 Leaflet 中使用自定义磁贴提供程序,只需要做两件事:

  • L.tilelayer(urlTemplateToTileProvider) 中指定磁贴提供程序
  • 将此提供程序设置为 MapZen


  • var urlTemplateToTileProvider =
    'http://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.mvt?api_key=apiKey'

    但是,当我尝试这样做时,我最终得到了一张空 map ,然后继续正确显示标记等。并且对生成的磁贴 URL 进行手动测试,例如
    http://tile.mapzen.com/mapzen/vector/v1/all/14/8471/5583.mvt?api_key=apiKey
    事实上确实下载了一些 - 我无法理解的 - 数据。

    我还尝试使用 Mapzen 文档中提到的其他两种格式( .json.geojson ),但结果完全相同。鉴于后两种格式返回人类可读的数据,我在浏览器中检查了我的测试图块,数据确实适用于我想要使用的区域。

    奇怪的是,Leaflet 文档和教程需要一个 PNG 平铺层 ( http://{s}.tile.osm.org/{z}/{x}/{y}.png),而不是原始数据。

    我在这里做错了什么?

    最佳答案

    Tile Layer适用于 光栅 平铺(即普通图像,例如 PNG 格式)。

    Mapzen 交付 矢量瓷砖。要将它们与 Leaflet 一起使用,您可以使用插件,例如Leaflet.VectorGrid ( license )

    Display gridded vector data (sliced GeoJSON or protobuf vector tiles) in Leaflet 1.0.0



    demo ,其中包括来自 Mapzen 的图块

    var mapzenTilesUrl = "https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.mvt?api_key={apikey}";
    var mapzenVectorTileOptions = {
    rendererFactory: L.canvas.tile,
    attribution: '<a href="https://mapzen.com/">&copy; MapZen</a>, <a href="http://www.openstreetmap.org/copyright">&copy; OpenStreetMap</a> contributors',
    vectorTileLayerStyles: vectorTileStyling,
    apikey: 'KEY',
    };
    var mapzenTilesPbfLayer = L.vectorGrid.protobuf(mapzenTilesUrl, mapzenVectorTileOptions);

    由于您在矢量切片中有原始数据,因此您需要提供样式规范 ( vectorTileStyling )

    关于leaflet - 在 Leaflet 中使用 Mapzen 图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324983/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com