根据字符串范围缩放圆的半径 - Mapbox

Scale radius of circle based on range of string - Mapbox

我正在尝试动态设置使用具有三列的数据集绘制的圆的半径:纬度/经度/会话数。数据导入正常,所有位置都以会话数作为标签正确绘制。

场景如下:

半径应基于会话数,因此具有 5 个会话的 lat/lon 对为 1px,具有 5,000 个会话的 lat/long 对为 10px,依此类推

有没有办法在数据集中动态设置这个?我可以通过添加数据集的多个实例并过滤到 1-10、11-100 等来自己创建层 "bands",但是设置 "min" 半径和 "max" 半径并根据可用数据自动缩放。

有没有办法在 Mapbox 中做到这一点?

假设我理解正确 - 基本上你有一些基于会话的数据类型 # 你想在那个经纬度配对上画一个更大或更小的圆圈。

您最初可以做的是导入数据,然后获取会话数并物理创建一组以在地图上呈现(某种类型的数组或其他)。您可以使用 mapbox 标记来渲染这些图标或圆圈,并为它们实际分配一个大小。

在此之前,您必须预先确定一个函数来获取会话数并将它们映射到物理半径值 - 例如 1000 个会话 = 10 的半径和 50,000 个会话 = 500 的半径。

例如,在我创建的 ios 应用程序中,这是我的代码,使用 - https://github.com/mapbox/react-native-mapbox-gl

markersArray = markersArray.concat({
                      coordinates:[bList[i].latitude, bList[i].longitude],
                      'type': 'point',
                      title: bList[i].bname,
                      subtitle: bList[i].data,
                      id: bList[i].o_ID.toString(),
                      startTime: bList[i].startTime,
                      endTime: bList[i].endTime,
                      annotationImage: {
                        url: (bList[i].type === 'drink') ? (drinkUrl) : (foodUrl),
                        height: 30,
                        width: 30
                      },
                      rightCalloutAccessory: {
                        url: 'image!info-icon',
                        height: 20,
                        width: 20
                      }
                    });