Java 基于屏幕宽度的地图高度,缩放级别为0
我试图通过编程计算并设置谷歌地图视图的高度,精确到显示的地图内容的高度。我使用缩放级别0是因为我想展示整个世界 问题是,我找不到如何获得地图内容的实际高度,因为该宽度受父宽度(=设备屏幕)的约束。我宁愿从顶部+底部切割地图,或者在顶部+底部添加较大的填充。请参见下面的快照 我知道根据缩放级别的宽度,0将是256dp(256*2^N dp,其中N是缩放级别)。但是,我需要宽度来匹配设备的屏幕大小,并且没有关于高度比/尺寸的文档 直接获取测量尺寸:Java 基于屏幕宽度的地图高度,缩放级别为0,java,android,google-maps,height,Java,Android,Google Maps,Height,我试图通过编程计算并设置谷歌地图视图的高度,精确到显示的地图内容的高度。我使用缩放级别0是因为我想展示整个世界 问题是,我找不到如何获得地图内容的实际高度,因为该宽度受父宽度(=设备屏幕)的约束。我宁愿从顶部+底部切割地图,或者在顶部+底部添加较大的填充。请参见下面的快照 我知道根据缩放级别的宽度,0将是256dp(256*2^N dp,其中N是缩放级别)。但是,我需要宽度来匹配设备的屏幕大小,并且没有关于高度比/尺寸的文档 直接获取测量尺寸: int width = mMapView.getM
int width = mMapView.getMeasuredWidth();
int height = mMapView.getMeasuredHeight();
我可以根据屏幕宽度计算缩放级别:
float zoom = (float) (Math.log(width / 256.0) / Math.log(2));
然而,我再次不知道什么是展示整个世界的合适高度
如果我设置android:layout\u height=“wrap\u content”,它只关心徽标,所以我得到了一张138px的压缩地图,这没有任何意义。这是我的地图视图xml:
<com.google.android.gms.maps.MapView
android:id="@+id/map"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:liteMode="true"
map:cameraZoom="0" />
有人知道如何根据屏幕宽度计算地图内容的高度吗
您需要找到墨卡托投影的真实南北边缘,然后以某种方式将2之间的距离转换为可以在地图容器中使用的某个高度值。这可能涉及在地图显示后调整容器高度(不知道Android如何工作)。@MrUpsidown我不确定它是否能解决这个问题,谷歌地图似乎也根据设备的屏幕参数(如dp)来计算地图的高度。你能展示一下你认为会产生魔力的代码吗?