ワーキンググループ/勉強会?
MapActivityを使用して、Google Mapを表示するアプリケーションのベースを作成します。
以下、作成のポイントです。
パーミッションの設定や、ライブラリの設定を行うために、AndroidManifest.xmlを編集しましょう。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-library android:name="com.google.android.maps"/>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.hews.hellomap" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloMapActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 以下のuses-libraryを追加 --> <uses-library android:name="com.google.android.maps"/> </application> <!-- 以下のuses-permissionを追加 --> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
画面のレイアウトを決定するために、res/layout/main.xmlを編集しましょう。
このアプリケーションでは、上部に水平方向のリニアレイアウトを配置し、中に地図を表示するMapViewを配置します。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="apisamples" /> </LinearLayout>
配置したMapViewの処理を呼び出すために、アクティビティのベースクラスをMapActivityに変更します。
public class HelloMapActivity extends MapActivity {
@Override protected boolean isRouteDisplayed() { return false; }
このままでは、地図が大きすぎるので、拡大して表示してみましょう。ここでは、簡略化のため、固定の倍率と場所を設定してみましょう。
MapView m = (MapView)findViewById(R.id.mapview);
MapController c = m.getController();
c.setZoom(15); c.setCenter(new GeoPoint(35455281,139629711));
ZoomControls zc = (ZoomControls) m.getZoomControls(); zc.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); zc.setGravity(Gravity.BOTTOM + Gravity.CENTER_HORIZONTAL); m.addView(zc);
package jp.hews.hellomap; import android.os.Bundle; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; public class HelloMapActivity extends MapActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView m = (MapView)findViewById(R.id.mapview); MapController c = m.getController(); c.setZoom(15); c.setCenter(new GeoPoint(35455281,139629711)); ZoomControls zc = (ZoomControls) m.getZoomControls(); zc.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); zc.setGravity(Gravity.BOTTOM + Gravity.CENTER_HORIZONTAL); m.addView(zc); } @Override protected boolean isRouteDisplayed() { return false; } }
ワーキンググループ/勉強会?