我正在尝试使用MapSnapshotter
(Mapbox Maps SDK for Android的一部分)来生成Mapbox地图实例的屏幕截图,包括我添加到地图的单行注释。
我似乎能够按预期生成静态地图位图,但是该图像不包含我的线注释。
是否有一种方法可以使线条出现在MapSnapshotter
生成的位图中,或者MapSnapshotter
仅限于捕获带有注释的地图屏幕快照?
我目前正在使用Mapbox的一个存储库中提供的example code。我所做的唯一更改是在Mapbox地图样式中添加了新图层和源,以使其显示在交互式Mapbox地图上。
答案 0 :(得分:2)
为了使用MapSnapshotter
拍摄的快照上可见的任何符号/几何形状,必须将所需的图层直接添加到样式中。另外,您可以像在this example中一样在图像上绘制,从而在快照中添加标记。
另一种方法是渲染普通的交互式地图并使用MapboxMap#snapshot
对其进行拍照。
答案 1 :(得分:0)
请根据以上答案告诉您如何将所需的图层直接添加到样式中? 我在地图框样式中添加了自定义符号层,但快照不会使符号产生位图。
FeatureCollection featureCollection = FeatureCollection.fromJson(geoJson);
Source source = new GeoJsonSource("my.data.source", featureCollection);
mapboxMap.addSource(source);
SymbolLayer myLayer = new SymbolLayer("my.layer.id", "my.source.id");
myLayer.withProperties(PropertyFactory.iconImage("my.image"));
mapboxMap.addLayer(myLayer);
// ...
MapSnapshotter.Options snapShotOptions = new MapSnapshotter.Options(500, 500);
snapShotOptions.withRegion(mapboxMap.getProjection()
.getVisibleRegion().latLngBounds);
snapShotOptions.withStyle(mapboxMap.getStyle().getUrl());
MapSnapshotter mapSnapshotter = new MapSnapshotter(this, snapShotOptions);
谢谢。