热图和深色主题:google maps vs mapbox

heat map and dark theme: google maps vs mapbox

我想在我的 android 应用程序中使用类似于 mapbox 深色主题的主题开发地图,我也想使用热图。我想了三个解决方案,但都存在问题

1° 解决方案:使用原生 google 地图及其对热图的支持。这里的问题是 MapFragments 的样式主题与 Mapbox 深色主题没有任何相似之处。

2°解决方案:使用MapBox aar的原生MapView。这里的问题是我对来自 MapBox Android SDK 的热图支持一无所知。

3° 解决方案:使用 UrlTileProvider 加载自定义图块并将其放在本机 Google 地图上,并在 mapbox 图块上使用本机热图支持。这里的问题是,当我从 url 加载时,图块非常难看,因为文本和图像是像素化的。

也许我在其中一个(或所有)解决方案中做错了什么。有更好的主意来做我需要的吗?

我使用 Google 地图解决了我的问题,并通过 Github 上可用的 custom UrlTileProvider 加载了我的 Mapbox 主题。这个用例是我的问题中描述的第三个解决方案,所以我在上面说过,使用这个解决方案我正在加载一个带有像素化图像和文本的低质量 Tile。

为了解决这个问题,我不得不花很多时间阅读 MapBox 文档,我发现可以将 2 倍分辨率(描述 here)的图块加载到图像。

基本上,要加载 2 倍分辨率的 MapBox 并获得 Google 地图功能的优势,我们应该:

变化

{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 地图功能的优势,我们需要使用 v4 mapbox 网络服务并将内容格式设置为 @2x.png