Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于屏幕宽度的地图高度,缩放级别为0_Java_Android_Google Maps_Height - Fatal编程技术网

Java 基于屏幕宽度的地图高度,缩放级别为0

Java 基于屏幕宽度的地图高度,缩放级别为0,java,android,google-maps,height,Java,Android,Google Maps,Height,我试图通过编程计算并设置谷歌地图视图的高度,精确到显示的地图内容的高度。我使用缩放级别0是因为我想展示整个世界 问题是,我找不到如何获得地图内容的实际高度,因为该宽度受父宽度(=设备屏幕)的约束。我宁愿从顶部+底部切割地图,或者在顶部+底部添加较大的填充。请参见下面的快照 我知道根据缩放级别的宽度,0将是256dp(256*2^N dp,其中N是缩放级别)。但是,我需要宽度来匹配设备的屏幕大小,并且没有关于高度比/尺寸的文档 直接获取测量尺寸: int width = mMapView.getM

我试图通过编程计算并设置谷歌地图视图的高度,精确到显示的地图内容的高度。我使用缩放级别0是因为我想展示整个世界

问题是,我找不到如何获得地图内容的实际高度,因为该宽度受父宽度(=设备屏幕)的约束。我宁愿从顶部+底部切割地图,或者在顶部+底部添加较大的填充。请参见下面的快照

我知道根据缩放级别的宽度,0将是256dp(256*2^N dp,其中N是缩放级别)。但是,我需要宽度来匹配设备的屏幕大小,并且没有关于高度比/尺寸的文档

直接获取测量尺寸:

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)来计算地图的高度。你能展示一下你认为会产生魔力的代码吗?