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

问题描述 投票:0回答:1

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

我之前一直困扰于此问题,最终使用了一些鸭子磁带解决方案,但现在无法使用。任何人都可以请问一下这个吗?

json mapbox mapbox-gl mapbox-android
1个回答
0
投票

您可以使用现有的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()方法来演示使用纬度/经度信息生成Mapbox [使用FeatureCollection方法创建的List个对象的Feature中的C0],并传入Feature.fromGeometry()

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

© www.soinside.com 2019 - 2024. All rights reserved.