问题描述
我目前正在浏览一段使用MapBox GL JS并具有如下所示的addSource()函数的代码
this.mapAdapter.map.addSource(`${this.asset.uuid}-data`,{
type: 'geojson',data: this.getMapBoxGeometry(),})
this.mapAdapter.map.addLayer({
id: `${this.asset.uuid}-polygon`,type: 'fill',source: `${this.asset.uuid}-data`,filter: ['==','$type','polygon'],}
我想知道源和图层之间的区别是什么。我似乎找不到合适的清晰定义。
特征收集的代码如下
type: 'FeatureCollection',features: [
{
type: 'Feature',properties: {},geometry: {
type: 'polygon',...}
图层是否以某种方式与要素集合相关?
解决方法
我想知道源和层之间的区别是什么。我似乎找不到合适的明确定义。
当我开始学习 Mapbox 时,我在试图理解源、图层、日期集、图块集、样式等之间的差异时遇到了非常相似的挣扎。 Mapbox 提供了多少内容以及他们拥有多少文档真是太棒了,但很容易在噪音中迷失方向。
我认为源是我地图的迷你数据存储,图层是源的可视化表示。添加源告诉 Mapbox “嘿,这是一个包含或更多可以添加到地图的图层的数据存储”。当您向地图添加图层时,您将其指向源并告诉 Mapbox 如何在地图上表示源。
将源添加到地图后,您可以使用它创建任意数量的图层。例如,如果我添加一个包含城市公园的源,我可以从该单个源创建以下三个图层。
- 将公园边界表示为阴影多边形的
fill
层 - 将边界表示为轮廓的
line
层 - 将公园名称显示为文本标签的
symbol
图层
我写了一个 Mapbox 和 React Deep Dives 系列,更深入地介绍了这一点。以下是一些与您的问题非常相关的帖子。
- A Complete Guide to Sources and Layers in React and Mapbox GL JS
- Tilesets & Datasets: Managing Data in Mapbox Studio
- The Mapbox Developer's Handbook
来源和图层在Mapbox-GL样式规范中定义:https://docs.mapbox.com/mapbox-gl-js/style-spec/
简而言之:源定义数据的来源,层定义源的显示方式。
图层是否以某种方式与要素集合相关?
不是真的。
图块集是源的别称还是完全不同?
矢量图块集是一种类型的源。 GeoJSON来源(例如您在此处使用的来源)是另一个来源。