Yahoo Maps APIを使って地図を表示させる

昨日の続きです。
今回はyahoo maps apiを使って地図が表示させます。

必要な作業は以下の通りです。

  1. AndroidManifest.xmlの修正
  2. 継承Activityの変更
  3. MapViewの実装

この3点です。


1. AndroidManifest.xmlの修正

まずは必要な機能に対して使用許可がいるので、AndroidManifest.xmlに以下を追加します。

<uses-permission android:name="android.permission.INTERNET" />  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />  

2. 継承Activityの変更

次にクラスファイルを修正して行きます。まずは、クラスが継承しているActivityをMapActivityに変更します。

public class MyActivity extends MapActivity {  
...  

すると、必要なメソッドを追加するようにと言われるので追加してあげます。地図を表示するだけならば、中身の実装はそのままで大丈夫です。

3. MapViewの実装

最後にMapViewを作り、ディスプレイに表示出来るようにします。
やることは、

  1. MapViewの作成
  2. MapControllerの取得
  3. 初期座標等の設定
  4. MapViewをContentViewとして登録

となります。

@Override  
public void onCreate(Bundle savedInstanceState) {  
  super.onCreate(savedInstanceState);  
  
  MapView mapView = new MapView(this,"アプリケーションID");  
  MapController c = mapView.getMapController();  
  c.setCenter(new GeoPoint(35665721, 139731006)); //初期表示の地図を指定  
  c.setZoom(1);                                  //初期表示の縮尺を指定  
  setContentView(mapView);  

必要なクラス等々はYahooのライブラリに入っているので、そちらをimportします。(面倒な方はjp.co.yahoo.android.maps.*をインポートして下さい。)
この実装で画面のコンテンツとしてmapViewが登録され、起動と同時に指定した地点が表示されます。


以上で終わりです。
サンプルコードはYahoo maps apiのドキュメントにあるチュートリアルから拝借しました。

チュートリアルにあるように、単純に地図を表示させたり線を引いたりナビをしたりっていうのはすごく簡単に実装できます。ただ、チュートリアルにない動作(地図の再描画やコンパスとの連携など)については、クラスとしては存在するものの使い方は書かれていません。なので、地図として色々やりたい場合はGoogle Maps apiの方が良いように思います。