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

时间:2019-09-26 15:41:17

标签: json mapbox mapbox-gl mapbox-android

我想在我的地图上创建混乱的地方。在查看指南和文档时,FeatureCollection Json总是从某些外部链接中拉出。但是,当我从服务器读取数据时,如何以编程方式创建它呢?我还没有在一个地方准备好所有东西,而且总会不断变化,这取决于用户。

我以前一直在解决这个问题,最终使用了一些鸭子磁带解决方案,但是现在无法使用。谁能给我一些启示吗?

1 个答案:

答案 0 :(得分:2)

您可以使用现有的FeatureCollection对象或Feature对象的数组/列表来创建Feature。可以将其转换为一种方法,每当收到新的数据集时就可以使用该方法来生成新的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()方法来演示如何使用纬度/纵向信息以从List of Feature objects生成Feature.fromGeometry() method的Mapbox FeatureCollection,并传入Point.fromLngLat()

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