我不确定将军械测量矢量切片添加到 React-Leaflet 应用程序的正确语法。
https://labs.os.uk/public/os-data-hub-examples/os-vector-tile-api/vts-3857-basic-map的示例代码从 Mapbox 加载一些矢量切片库:
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v1.13.1/mapbox-gl.js"></script>
<script src="https://unpkg.com/mapbox-gl-leaflet/leaflet-mapbox-gl.js"></script>
然后使用此 JavaScript 语法加载操作系统矢量切片:
// Load and display vector tile layer on the map.
var gl = L.mapboxGL({
style: 'https://api.os.uk/maps/vector/v1/vts/resources/styles?key=' + apiKey,
transformRequest: url => {
return {
url: url += '&srs=3857'
}
}
});
(我已验证我的操作系统 api 密钥在独立演示中有效。)
如何使用 React 和 Leaflet 完成等效操作?
我正在使用React-Leaflet将 Leaflet 功能添加到我的 React 应用程序中,并且我尝试添加react-leaflet-vector-tile-layer - 我已经验证这适用于 Mapbox Studio 提供的矢量切片图层:
<VectorTileLayer
styleUrl="mapbox://styles/my-org/my-style"
accessToken="my-key"
/>
我也在尝试将这种方法用于军械测量矢量切片图层,但它不起作用,因为我可能语法错误:
<VectorTileLayer
styleUrl="https://api.os.uk/maps/vector/v1/vts/resources/styles?key=my-key"
/>
未显示错误消息,但 OS 矢量切片图层未出现在地图上。在开发人员控制台中,我可以看到 PBF 文件已下载,但它没有在地图上绘制。这可能是因为我transformRequest
在他们的示例中缺少该功能吗?假设它是必需的,我如何在使用时添加这个转换请求react-leaflet-vector-tile-layer
?