после этого урока SymbolLayer Я создал строку geo Json из списка объектов, которые я получил из своей базы данных. Когда мне нужно вызвать
mapboxMap.addSource(source);
, я не могу найти метод addSource для своей карты. Ни аддлайер один. То, что я сделал и сделал, находится внутри моего метода onMapReady, называемого style.addSource и style.addLayer, но он не работает. Вот как это выглядит:
public void onMapReady(@NonNull final MapboxMap mapboxMap) {
MainActivity.this.mapboxMap = mapboxMap;
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_fuel_11, null);
Bitmap bitmap = BitmapUtils.getBitmapFromDrawable(drawable);
//got the image to display
String geoJsonData = toJson(getDistr());
//got the geoJson String
FeatureCollection featureCollection = FeatureCollection.fromJson(geoJsonData);
Source source = new GeoJsonSource("id", featureCollection);
SymbolLayer symbolLayer = new SymbolLayer("layerId", "id");
mapboxMap.setStyle(new Style.Builder().fromUri("mapbox://styles/mapbox/navigation-preview-day-v4"),
new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
style.addImage("img", bitmap);
style.addSource(source);
style.addLayer(symbolLayer.withProperties(PropertyFactory.iconImage("img")));
enableLocationComponent(style);
}
});
Кто-нибудь может сказать, что я делаю неправильно или какой другой подход я должен предпринять, чтобы отобразить список объектов, которые у меня есть в моей БД с широтой и долготой на карте?