我想在我的地图上创建混乱的地方。在查看指南和文档时,FeatureCollection Json总是从某些外部链接中拉出。但是,当我从服务器读取数据时,如何以编程方式创建它呢?我还没有在一个地方准备好所有东西,而且总会不断变化,这取决于用户。
我以前一直在解决这个问题,最终使用了一些鸭子磁带解决方案,但是现在无法使用。谁能给我一些启示吗?
答案 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
数据源。