MapBox SDK - [ParseStyle]: не удалось проанализировать стиль: 0 - недопустимое значение.

Я реализовал собственный картографический сервер из OpenMapTiles Map Server.

Я намерен использовать SDK MapBox с картами моего сервера.

Открыть сервер фрагментов карты

Примените стиль «Темная материя», используя следующую спецификацию TileJSON 2.0:

введите описание изображения здесь

Используя метод setStyleJson MapBox, я установил это происхождение:

setContentView(R.layout.activity_main);
        Mapbox.getInstance(this, "access_token");
        setContentView(R.layout.activity_main);
        mapView = (MapView) findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);

        mapView.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(MapboxMap mapboxMap) {
                mapboxMap.setStyleJson("http://192.168.1.65:8080/styles/dark-matter.json");
                mapboxMap.setCameraPosition(new CameraPosition.Builder()
                        .target(new LatLng(47.3769, 8.5417))
                        .zoom(25)
                        .build());
            }
        });

Карта остается пустой, и через logcat я вижу следующее сообщение об ошибке:

05-17 12:38:18.489 19008-19008/sergio.sanchez.sanchez.demomapbox E/mbgl: {chez.demomapbox}[ParseStyle]: Failed to parse style: 0 - Invalid value.

Может кто подскажет, что я делаю не так?

Спасибо.


person Sergio Sánchez Sánchez    schedule 17.05.2018    source источник


Ответы (1)


mapboxMap.setStyleJson ожидает фактическую строку JSON, а не URL-адрес. Чтобы передать URL, используйте метод setStyleUrl карты mapbox или метод setStyleUrl представления карты:

mapView.setStyleUrl("http://192.168.1.65:8080/styles/dark-matter.json");
mapView.onCreate(savedInstanceState);
person Mohammad Banisaeid    schedule 21.05.2018
comment
Это решение также работало в случае, когда я позвонил new Style.Builder().fromJson() с URL-адресом. Я должен был позвонить new Style.Builder().fromUrl(). - person Michael Osofsky; 22.02.2019