【问题标题】:TileOverlay not rendering tiles in Google Maps Android appTileOverlay 不在 Google Maps Android 应用程序中渲染图块
【发布时间】:2018-09-23 21:50:00
【问题描述】:

我有一个从 URL 加载图块的 Android 应用程序。按照谷歌的代码示例,我有以下功能:

@Override
public void onMapReady(GoogleMap googleMap) {
    mapView = googleMap;
    mapView.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    LatLng baseLocation = new LatLng(37.745446, -122.459264);
    mapView.addMarker(new MarkerOptions().position(baseLocation).title("Marker"));
    mapView.moveCamera(CameraUpdateFactory.newLatLng(baseLocation));
    mapView.moveCamera(CameraUpdateFactory.zoomTo(5));

    TileProvider tileProvider = new UrlTileProvider(256, 256) {
        @Override
        public synchronized URL getTileUrl(int x, int y, int z) {
            String formattedUrl = String.format(Locale.US, TILE_SERVER_URL, x, y, z);
            URL url = null;

            try {
                url = new URL(formattedUrl);
                Log.d("TILE_URL", url.toString());
            }
            catch (MalformedURLException ex) {
                throw new AssertionError(ex);
            }
            return url;
        }
    };

    tiles = mapView.addTileOverlay(new TileOverlayOptions().zIndex(0.0f).tileProvider(tileProvider).visible(true));
}

这已经在我们的 iOS 版本中实现并按预期工作。此外,我已验证在此函数中返回到控制台的 URL 肯定会导致返回平铺图像。

我主要是一名 iOS 用户,在这里需要一些见解。地图上没有显示任何图块。我玩过瓷砖叠加层的 zIndex,但没有任何效果。

有人可以在这里提供一些建议吗?谢谢!

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    我假设你关注了谷歌的TileOverlayDemoActivity example:如果是这种情况,你必须将URL格式协议从http更新为https,如下:

    private static final String MOON_MAP_URL_FORMAT =
            "https://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/%d/%d/%d.jpg";
    

    我花了很长时间才弄明白,我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多