我想在我的Android应用程序中使用类似于mapbox的黑暗主题的主题开发地图,我也想使用热图。我正在考虑三种解决方案,但所有这些解决方案都存在问题
1°解决方案:使用原生谷歌地图及其对热图的支持。这里的问题是MapFragments的样式主题与Mapbox黑暗主题类似。
2°解决方案:使用MapBox aar的原生MapView。这里的问题是我对MapBox Android SDK的支持热图一无所知。
3°解决方案:使用UrlTileProvider加载自定义磁贴并将其放在原生Google地图上,并使用地图集磁贴上的原生热图支持。这里的问题是,当我从网址加载时,磁贴非常难看,因为文本和图像都是像素化的。
也许我在其中一个(或全部)解决方案中做错了什么。做我需要的更好的主意是什么?
答案 0 :(得分:0)
我使用Google地图解决了我的问题,并通过Github上提供的custom UrlTileProvider加载我的Mapbox主题。这个用例是我的问题中描述的第三个解决方案,所以我上面说的,使用这个解决方案,我正在加载一个带有像素化图像和文本的低质量平铺。
为了解决这个问题,我不得不花费大量时间阅读MapBox文档,我发现可以将2x分辨率(描述为here)的图块加载到图像中。
基本上,要加载MapBox的2倍分辨率并获得Google Maps功能的优势,我们应该:
Chage
{http or https}://api.tiles.mapbox.com/v3/{map id}/{z}/{x}/{y}.png
到
https://api.tiles.mapbox.com/v4/{map id}/{z}/{x}/{y}@2x.png?access_token={your access token}
显然你应该更改getTileUrl方法,因为这里使用了String.format。
所以基本上加载具有良好分辨率的MapBox图块并获得Google Maps功能的优点,我们需要使用v4 mapbox webservices并将内容格式设置为@ 2x.png