android - 根据设备更改地图开始缩放
问题描述
我有一个带有阴影多边形区域和一些标记的谷歌地图。我设置了起始缩放以在我正在测试的平板电脑仿真上很好地构图阴影区域。当我在不同的模拟器(例如手机)上测试时,缩放太近导致阴影区域填满屏幕。
我不明白这对更多人来说不是问题吗?还是我真的不擅长互联网搜索?我在任何地方都找不到如何根据您正在查看地图的设备(以及屏幕尺寸)和方向来更改起始缩放?
代码示例:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
float zoom = 15.8f; // Need to change based on device screen size/orientation
mMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(new LatLng(-35.237, 149.082976), zoom)));
// other code
}
截图
好的,尝试更换
mMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(new LatLng(-35.237, 149.082976), zoom)));
和
LatLngBounds boundry = new LatLngBounds(new LatLng(-35.243, 149.074),
new LatLng(-35.231, 149.094));
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(boundry,0));
现在应用程序在开始时崩溃,并显示“使用 newLatLngBounds(LatLngBounds, int) 时出错:地图大小不能为 0。”
解决方案
解决方案
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng sw = new LatLng(-35.243, 149.074);
LatLng ne = new LatLng(-35.231, 149.094);
mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
LatLngBounds boundary = new LatLngBounds(sw, ne);
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(boundary,90));
}
});
// other code
}
推荐阅读
- android - 为什么我的应用只在安卓 5 或更低版本的设备上拍照?
- mysql - 如何删除所有二进制类型值不正确的记录
- linux - 如何将 libc 与 ld 静态链接?
- python - Python输入不适用于远程解释器
- c# - C# 如何使用 datagridview_comboboxes 填充数据网格视图
- r - 有条件地从 R 中的列表中删除项目
- excel - InStr 在特定单元格中查找确切数字
- javascript - '-' 在 v-bind:style / Vue.js 中
- reactjs - 反应路由器
不添加活动类 - matplotlib - 在 matplot lib 上以灰度显示图像