Череп третьей стороны не загружается в Google Map - PullRequest
0 голосов
/ 20 мая 2018

Я разрабатывал простое приложение для Android, в котором использовался API-интерфейс Google Map, и частью его функциональности является возможность динамического изменения поставщика карты (плитки) (например, изменение плитки между картой Google Map и плиткой Open Street Map).Я пытаюсь использовать Google Map TileProvider, но вместо плитки OSM я ничего не вижу (например, плитка не загружается).Если выбран провайдер Google, все работает нормально.

Следующий фрагмент кода иллюстрирует, как он реализован:

    mapView = (MapView) rootView.findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);


    try {
        MapsInitializer.initialize(getActivity().getApplicationContext());
    } catch (Exception e) {
        logger.error("Error occurs while map initializing");
    }

    mapView.onResume(); 

    mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
           mMap = googleMap;
           if (MapProvider.valueOf(LocalPreferenceManager.getMapProvider(getContext())) != MapProvider.Google) {

                final String osmUrl = "http://a.tile.openstreetmap.org/%d/%d/%d.png";
                TileProvider tileProvider = new UrlTileProvider(256,256) {

                    @Override
                    public URL getTileUrl(int x, int y, int zoom) {
                        URL url = null;
                        try {
                            String s = String.format(osmUrl,zoom, x, y);
                            url = new URL(s);
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        }
                        return url;
                    }
                };
                mMap.setMapType(GoogleMap.MAP_TYPE_NONE);
                mMap.addTileOverlay(new TileOverlayOptions().
                        tileProvider(tileProvider));
            }
            //some action...
        }
    });

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 21 мая 2018

"http://a.tile.openstreetmap.org/%d/%d/%d.png" больше не действителен пару дней назад. Попробуйте" https://a.tile.openstreetmap.org/%d/%d/%d.png".

Хотя было бы неплохо, если бы вещи перенаправлялись автоматически, не каждый клиент делает.

...