Google 地图 v2 Android 地图图块重叠
Google Maps v2 for Android map tiles overlapping
我使用自定义 UrlTileProvider 从 MapBox 加载图块。
public class MapboxTileProvider extends UrlTileProvider {
public MapboxTileProvider(int width, int height) {
super(width, height);
}
@Override
public URL getTileUrl(int x, int y, int z) {
try {
return new URL(String.format(MAP_BASE_URL, z, x, y));
} catch (MalformedURLException e) {
throw new RuntimeException("Failed constructing map tile URL", e);
}
} }
它加载正确,但我看到默认的 Google 图块与 MapBox 的图块重叠。
(那些黄色的道路肯定来自 google 地图)
如何禁用默认图块并阻止它们加载?
我使用像这样初始化的嵌套 SupportMapFragment:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map_container);
if (mapFragment == null) {
mapFragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.map_container, mapFragment).commit();
}
}
@Override
public void onResume() {
super.onResume();
if (map == null) {
map = mapFragment.getMap();
map.clear();
map.addTileOverlay(new TileOverlayOptions().tileProvider(new MapboxTileProvider(MapboxTileProvider.MAP_TILE_DIMENSION, MapboxTileProvider.MAP_TILE_DIMENSION)));
}
}
你可以只使用:
map.setMapType(GoogleMap.MAP_TYPE_NONE);
参考:
https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#setMapType(int)
https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#MAP_TYPE_NONE
我使用自定义 UrlTileProvider 从 MapBox 加载图块。
public class MapboxTileProvider extends UrlTileProvider {
public MapboxTileProvider(int width, int height) {
super(width, height);
}
@Override
public URL getTileUrl(int x, int y, int z) {
try {
return new URL(String.format(MAP_BASE_URL, z, x, y));
} catch (MalformedURLException e) {
throw new RuntimeException("Failed constructing map tile URL", e);
}
} }
它加载正确,但我看到默认的 Google 图块与 MapBox 的图块重叠。
如何禁用默认图块并阻止它们加载?
我使用像这样初始化的嵌套 SupportMapFragment:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
mapFragment = (SupportMapFragment) fm.findFragmentById(R.id.map_container);
if (mapFragment == null) {
mapFragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.map_container, mapFragment).commit();
}
}
@Override
public void onResume() {
super.onResume();
if (map == null) {
map = mapFragment.getMap();
map.clear();
map.addTileOverlay(new TileOverlayOptions().tileProvider(new MapboxTileProvider(MapboxTileProvider.MAP_TILE_DIMENSION, MapboxTileProvider.MAP_TILE_DIMENSION)));
}
}
你可以只使用:
map.setMapType(GoogleMap.MAP_TYPE_NONE);
参考: https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#setMapType(int) https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#MAP_TYPE_NONE