mapbox удалить слой базовой карты

Я работаю над mapbox android sdk. Я могу показать наши фрагменты карты (растровые фрагменты в формате png), но некоторые районы прозрачны, и в этих местах отображается карта mapbox. В другом проекте с картой Google я сделал это, и у Google есть опция с именем:

googleMap.setMapType(GoogleMap.MAP_TYPE_NONE);

которые удаляют карту Google по умолчанию и показывают только мои плитки, но в mapbox android нет такой опции, и я удивляюсь, что этот огромный SDK не имеет этой базовой опции, или я не мог легко найти. Кто-нибудь может помочь мне решить эту проблему?

Хорошо сказать, что я удалил все слои, источники и аннотации из mapbox, а затем добавил наш собственный набор растровых листов:

 for (int i = 0; i < mapboxMap.getLayers().size(); i++) {
        mapboxMap.removeLayer(mapboxMap.getLayers().get(i));
    }

    for (int i = 0; i < mapboxMap.getSources().size(); i++) {
        mapboxMap.removeSource(mapboxMap.getSources().get(i));
    }

    for (int i = 0; i < mapboxMap.getAnnotations().size(); i++) {
        mapboxMap.removeAnnotation(mapboxMap.getAnnotations().get(i));
    }



webMapSource = new RasterSource(
            "web-map-source",
            new TileSet("tileset", "ourownwebsite.com?" +
                    "bbox={bbox-epsg-3857}" +
                    "&service=WMS" +
                    "&version=1.1.0" +
                    "&EXCEPTIONS=application/vnd.ogc.se_inimage" +
                    "&request=GetMap" +
                    "&layers=test:GSLD256" +
                    "&width=256" +
                    "&height=256" +
                    "&srs=EPSG:3857" +
                    "&format=image/png"), 256);

    mapboxMap.addSource(webMapSource);         
    // Add the web map source to the map.
    RasterLayer webMapLayer = new RasterLayer("web-map-layer", "web-map-source");
    mapboxMap.addLayer(webMapLayer);

person Ali Khoshraftar    schedule 26.12.2017    source источник


Ответы (1)


Вы можете использовать mapboxMap.removeAnnotations() или mapboxMap.clear(), чтобы удалить все аннотации с карты.

Что касается базовых слоев, наиболее близким к GoogleMap.MAP_TYPE_NONE будет установка стиля, содержащего только фоновый слой. Для этого вызовите mapboxMap.setStyleJson со строкой, содержащей определение стиля, подобное этому:

{
  "version": 8,
  "name": "Empty",
  "sources": {
  },
  "layers": [
    {
      "id": "background",
      "type": "background",
      "paint": {
        "background-color": "hsl(47, 26%, 88%)"
      }
    }
  ],
  "id": "empty"
}
person Tamás Szincsák    schedule 10.06.2018