マップビューを使用して複数のユーザーの位置を表示しています。私はマップのズームレベルを適切に設定してすべてのピンを表示するために、ここにリストされているメソッドを使用しています。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キーはなぜMapViewのが唯一のグリッドが表示されていることをdebig証明書のためではありません。しかし、あなたは空白を見ることができます。ズームインするとこれが変わります。ズームロジックを確認する必要がありますか?私は最大ズームアウトがまだ利用可能なスペースを埋めると思った。
ズームとは関係があると思います。 google docsから。
zoomToSpan
緯度と経度の所定の スパンが表示されるように、地図のズームを調整することを試みます。ズームは が離散レベルにしか達しないため、マップ のアスペクト比が指定された比率と一致しない可能性があるため、フィットの品質は異なる場合があります。 私たちが保証することは、ズーム後、 新しい緯度または新しい経度の少なくとも1つが、対応するパラメータ から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);
私のマップビューは、塗りつぶしの親としての属性を持つ線図レイアウト内にあります。私はちょうどxmlにそれを含んでいませんでした。 – blessenm