繁体   English   中英

MapView无法全屏显示

[英]MapView not taking full screen

我正在使用mapview显示几个用户的位置。 我正在使用此处列出的一种方法来适当设置地图缩放级别,以显示所有图钉。

但是问题在于,当销钉在世界各地时,缩放级别已最大化,并且我在mapview的顶部和底部得到了白色空间。

有没有办法解决这个问题,我只希望地图网格填充该区域而不是颜色。 这是图片和xml

在此处输入图片说明

<com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"    
    android:id="@+id/mapview"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:background="#061a2f"
    android:clickable="true" android:apiKey=""/>

api密钥不适用于debig证书,这就是为什么mapview仅显示网格的原因。 但是您可以看到空白。 一旦我们放大,这种情况就会改变。我需要检查我的缩放逻辑。 我认为最大缩小仍将填充可用空间。

我认为这与缩放有关。 从谷歌文档。

zoomToSpan

尝试调整地图的缩放比例,以便显示给定的纬度和经度跨度。 由于缩放只能达到离散级别,并且由于地图的纵横比可能与给定的比例不匹配,因此拟合的质量可能会发生变化。 我们唯一保证的是,在缩放之后,新纬度或新经度中的至少一个与相应参数的距离应在2的范围内。

我认为长宽比是问题所在。 有没有更可靠的方法来执行此操作。 这是我的Java代码。

for(Visitor visitor:mVisitors){
    LiveMapOverlay overlay = new LiveMapOverlay(new 
            PinDrawable(mContext,color),mMapView);
GeoPoint point = new GeoPoint(
            (int)(Double.valueOf(visitor.visitorInfo.latitude) * 1E6)                            
            ,(int)(Double.valueOf(visitor.visitorInfo.longitude) * 1E6));
minLatitude = minLatitude < point.getLatitudeE6() ? minLatitude :   
            point.getLatitudeE6();
maxLatitude = maxLatitude > point.getLatitudeE6() ? maxLatitude : 
            point.getLatitudeE6();
minLongitude = minLongitude< point.getLongitudeE6()? minLongitude: 
            point.getLongitudeE6();
maxLongitude = maxLongitude> point.getLongitudeE6()? maxLongitude: 
            point.getLongitudeE6();
}
mMapView.getController().setCenter(new GeoPoint((maxLatitude + minLatitude)/2 , 
        (minLongitude + maxLongitude)/2));
mMapView.getController().zoomToSpan(maxLatitude - minLatitude, maxLongitude - 
        minLongitude);

解决! 请在创建地图后在下面添加代码行。 初始化后,它会通过自动将地图缩放3倍来工作,您可以根据需要使用其他因子。

mapView.setBuiltInZoomControls(true); 
int level = mapView.getZoomLevel();
MapController mc = mapView.getController();
mc.setZoom(level + 3);

在地图视图之前使用线性布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM