MapBox:如何以编程方式创建 featureCollection?

MapBox: How do I create a featureCollection programmatically?

我想在我的地图中创建集群。查看指南和文档时,FeatureCollection Json 总是从某些外部 link 中提取。但是,当我从服务器读取数据时,如何以编程方式创建它呢?我没有在一个地方准备好一切,它总是会根据用户而改变。

我以前一直被这个问题困扰,最后使用了一些胶带解决方案,但现在不起作用了。任何人都可以对此有所了解吗?

您可以使用现有的 Feature 个对象或 array/list 个 Feature 个对象来创建 FeatureCollection。这可以变成一种方法,您可以在收到新数据集时使用该方法生成新的 FeatureCollection

鉴于您提供的信息,我将不得不在这里做出一些假设 - 我希望以下代码片段可以帮助您朝着正确的方向前进:

public FeatureCollection getFeatureCollectionFromCoordinateList(List<Coordinate> coords) {
    List<Feature> pointsList = new ArrayList<>();

    for (Coordinate coord : coords) {
        Feature feature = Feature.fromGeometry(Point.fromLngLat(coord.getLongitude(), coord.getLatitude()));
        pointsList.add(feature);
    }

    return FeatureCollection.fromFeatures(pointsList);
}

在上面的示例中,我用来表示来自服务器的数据的对象称为 Coordinate,我给出了 getLatitude()getLongitude() 方法来演示使用latitudinal/longitudinal 从 List of Feature objects which are created using the Feature.fromGeometry() method, passing in a Point.fromLngLat().

生成 Mapbox FeatureCollection 的信息

请注意,这可能不是您在此尝试实现的目标的最佳方式。也就是说,我希望它说明了另一种方法,您可以在其中实例化 FeatureCollection 而无需读取 JSON 数据源。