- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Google Maps Android SDK 构建带有自定义图 block 的 map 。我已经检查了 TileOverlayDemoActivity的 android-samples Github 存储库。
根据documentation在缩放级别 0 时,将请求单个图像,在缩放级别 1 时,总共需要 4 张图像,依此类推。目前我面临的问题是,在加载 map 后 立即 TileProvider#getTitle
调用缩放级别 3 并且没有办法让我缩小。即使我显示缩放控件,“-”也会被禁用。
我认为它可能与 Camera
有关,所以我尝试调用以下命令
map.moveCamera(CameraUpdateFactory.zoomTo(0.0f));
不幸的是,这没有任何效果。以下同样适用
map.setMinZoomPreference(0);
目前我不知道问题可能是什么。
按照我的代码。它与链接的演示 Activity 基本相同,我只是将 UrlTileProvider
更改为我自己的。
@Override
public void onMapReady(GoogleMap map) {
map.setMapType(GoogleMap.MAP_TYPE_NONE);
map.setMinZoomPreference(0);
map.getUiSettings().setZoomControlsEnabled(true);
map.moveCamera(CameraUpdateFactory.zoomTo(0.0f));
TileProvider tileProvider = new TileProvider() {
@Override
public Tile getTile(int x, int y, int zoom) {
String name = "tile_" + Integer.toString(zoom) + "_" + Integer.toString(x) + "_" + Integer.toString(y);
Resources resources = getResources();
final int resourceId = resources.getIdentifier(name, "drawable", getPackageName());
Drawable d = getResources().getDrawable(resourceId);
Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapdata = stream.toByteArray();
return new Tile(256, 256, bitmapdata);
}
};
mapTiles = map.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider));
}
也许值得一提的是 map.getCameraPosition()
返回的内容:
CameraPosition{target=lat/lng: (0.0,0.0), zoom=2.0, tilt=0.0, bearing=0.0}
如何将 map 设置为缩放级别 0?
根据评论和回答,我尝试激活 Lite Mode
并通过 XML 设置缩放级别:
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="1"
map:mapType="normal"
class="com.google.android.gms.maps.SupportMapFragment" />
不幸的是没有任何效果。它仍然在缩放级别 3 开始请求。
最佳答案
似乎无法将缩放级别设置为 0,因为最小缩放级别为 1 from documentation :
The following list shows the approximate level of detail you can expect to see at each zoom level:
1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings
也来自文档:
Note: Due to screen size and density, some devices may not support the lowest zoom levels. Use
GoogleMap.getMinimumZoomLevel()
to get the minimum zoom level possible for the map. If you need to show the entire world in the viewport, it may be better to use Lite Mode.
所以,使用 Lite Mode在视口(viewport)中显示整个世界。
关于android - TileOverlay#getTile 从缩放级别 3 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688761/
因此,当我使用我的 MapBox map 时,图 block 覆盖在我的多段线和多边形上,因此看不到它们。 有什么办法可以修改这种行为吗? 这是我正在使用的代码: public class MapBo
我有一些动态图 block 内容要显示在 map 顶部(特别是天气图像 -- 雷达、卫星、温度等)。我正在使用适用于 Android v2 的 Google Maps API。 我遇到的问题显然是更新
我使用多个 TileOverlay 对象作为我的 map 动画的“框架”。当 TileOverlay 可见时(通过 TileOverlay.setVisible(true)),它将开始下载图 bloc
我目前正在开发一个应用程序,该应用程序使用自定义 TileSource 在 Google map 上显示数据。我以 *.png 图像的形式获取这些数据,并且我正在使用 URLTileProvider。
我有一个问题,我目前正在尝试为其构建自定义解决方案。我正在苦苦挣扎,也许我可以让它工作,但也许已经有另一种解决方案了。 我的客户有一个用于获取图 block 叠加层的后端,但它只能持续到缩放级别 8。
使用 java,我们可以通过使用瓦片覆盖将 WMS 瓦片放在 Google Base Map 的顶部。在 flutter 中,我发现 google_maps_flutter 在其构造函数上有 tile
我已经使用 MapTiler 创建了一些图 block ,我正试图将这些图 block 覆盖到带有 android 的 Google map 上,但运气不佳。 Android 文档关于此主题的内容非常
我正在尝试使用 Google Maps Android SDK 构建带有自定义图 block 的 map 。我已经检查了 TileOverlayDemoActivity的 android-sample
我有一个应用程序,用户可以在其中将图像加载到 Google map 上。这是为 2.3 开发的,因此有一个 MapActivity、一个 MapView 和显示图像的自定义 Overlay 类。在覆盖
我希望我的 TileOverlay 表现得像真正的 Google map 。当您放大时,在下载新的图 block 之前,该图 block 仍然可见但已像素化。 当前的行为是:当您放大时,图 block
我是一名优秀的程序员,十分优秀!