AndroidandroidAndroid知识

App中高德地图如何显示国外地址

2017-03-09  本文已影响5860人  天哥在奔跑

上篇《基于Android平台的全球地图方案》大概描述了不同地图之间的差异,以及在国内要显示国外的地址有哪些方案。本篇就说一下在Android开发中,如何在地图上显示国外的地址。

我们的方案还是使用高德地图。

上篇已经提到,高德地图支持瓦片显示,所以当我们显示国外地址时,只需要在高德地图上添加Google的瓦片即可,开发者也可以使用已经下载好的瓦片或者自定义的瓦片。这里笔者只写一个简单的例子,具体大家可以查看高德地图的API。

TileProvider tileProvider = new UrlTileProvider(256, 256) {
                public URL getTileUrl(int x, int y, int zoom) {
                    try {
                        return new URL(String.format(http://mt2.google.cn/vt/lyrs=m@198&hl=zh-CN&gl=cn&src=app&x=%d&y=%d&z=%d&s=, x, y, zoom));
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    }
                    return null;
                }
            };
aMap.addTileOverlay(new TileOverlayOptions()
                        .tileProvider(tileProvider)
                        .diskCacheEnabled(true)
                        .diskCacheDir("/storage/emulated/0/demo/cache")
                        .diskCacheSize(100000)
                        .memoryCacheEnabled(true)
                        .memCacheSize(100000));

通过以上方法,就可以在高德地图的基础上添加Google瓦片,便可以显示国外的地图了,上篇中有添加瓦片前后的对比图。

那么除了这种方法之外,对于开发者其实还有更简单的方法,高德地图已经帮我们封装好了,只需要调用以下方法:

MapsInitializer.loadWorldGridMap(true);

仅此一句话便可以显示全球的地图信息了,当高德地图无法显示国外地址时会自动切换到Google显示,开发者无需干预。但是如果开发的需求仅限于国内的话,就不用添加这一句了,毕竟影响加载的效率和内存的占用。

推荐:

Android开发视频教程(Java版 | 2017年最新录制)

上一篇 下一篇

猜你喜欢

热点阅读