簡體   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