スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

倍率と座標の設定

Google Mapのアプリケーションでは、デフォルトの地図が周辺国まで表示される日本地図ですが、より実用性をもたせるため、表示倍率(縮尺)と座標を設定できるようにしましょう。

package sample.basic;

import android.os.Bundle;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MapController;
import com.google.android.maps.GeoPoint;

public class HelloAndroid extends MapActivity{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

MapView map=(MapView)findViewById(R.id.map);
map.setBuiltInZoomControls(true);

MapController mc=map.getController();
mc.setZoom(15);
mc.setCenter(new GeoPoint((int)(35.687418 * 1E6),(int)(139.756308 * 1E6)));

}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}


インポートしたクラスは、MapControllerとGeoPointです。

MapControllerは、プログラムを使って地図を動かしたりズームしたりするためのクラスです。GeoPointは、緯度や経度を指定するためのクラスです。

MapControllerにはコンストラクタが用意されておらず、操作対象のMapViewクラスのオブジェクトからgetController()メソッドを使ってMapControllerクラスのオブジェクトを取得することになります。

MapController mc=map.getController();



倍率の設定は、setZoom()メソッドで行います。

int setZoom(int zoomLevel)



地図の中心を合わせるのは、setCenter()メソッドです。

void setCenter(GeoPoint point)



1E6 は、1×10の6乗(10万倍)の意味です。整数にするために、緯度・経度を10万倍します。

20110828_4
皇居付近の地図です。

ちなみに、ある地点の緯度と経度をパソコンのグーグルマップから取得するには、地図を右クリックして [この場所について] をクリックすると、座標が自動的に検索ボックスに入力されます。

関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/42-7f3f976f
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。