地図 (画面) のビューに完全に収まるように、追跡されたルートのズーム レベルを計算するにはどうすればよいですか? ルート/トラック全体/経度/緯度位置の始点と終点があり、入力パラメーター メーターでズーム レベルを計算できますが、何メートルに設定する必要がありますか? 記録した軌跡を地図上に表示したい。トラックを表示しましたが、マップに収まりません。
1363 次
1 に答える
3
このコード スニペットを使用してズームを設定できます。開始および終了のジオポイントをリストで渡すだけです。2点以上お持ちの方もOKです。
private void fixZoom(MapController controller, List <GeoPoint> items){
int minLat = Integer.MAX_VALUE;
int maxLat = Integer.MIN_VALUE;
int minLon = Integer.MAX_VALUE;
int maxLon = Integer.MIN_VALUE;
for (GeoPoint item : items)
{
int lat = item.getLatitudeE6();
int lon = item.getLongitudeE6();
maxLat = Math.max(lat, maxLat);
minLat = Math.min(lat, minLat);
maxLon = Math.max(lon, maxLon);
minLon = Math.min(lon, minLon);
}
controller.zoomToSpan((int) (Math.abs(maxLat - minLat) * 1.1), (int)(Math.abs(maxLon - minLon) * 1.1)); //1.1 to have some padding on the edges.
controller.animateTo(new GeoPoint( (maxLat + minLat)/2,(maxLon + minLon)/2 )); //so the center is positioned just in the middle
}
それが役立つことを願っています。
于 2012-11-30T09:38:11.200 に答える