基于字符串范围的圆的缩放半径 - Mapbox

时间:2016-12-22 17:05:22

标签: dataset maps gis mapbox mapbox-gl

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

以下是该方案:

半径应该基于会话数,因此5个会话的纬度/经度对是1px,纬度/长对,5,000个会话是10px等。

有没有办法在数据集中动态设置?我可以通过添加数据集的多个实例并过滤到1-10,11-100等来自己创建图层“波段”,但设置“最小”半径和“最大”半径并且有很好的它根据可用数据自动缩放。

有没有办法在Mapbox中执行此操作?

1 个答案:

答案 0 :(得分:2)

假设我理解这一点 - 基本上你有一些基于会话的数据类型#你想在那个lat上画一个更大或更小的圆圈,长配对。

您可以做的最初是导入数据,然后进行会话#并在物理上创建一个要在地图上渲染的集合(某种类型的数组或其他东西)。您可以使用地图框标记来渲染这些图标或圆形,并为它们物理分配大小。

在此之前,您必须预先确定一个函数来获取会话数并将它们映射到物理半径值 - 例如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
                      }
                    });