Happy My Life

日常とか技術とか

マピオンのAndroid Maps APIを使ってみた

この間まで知らなかったのだが、日本では有名な地図ソフトの会社であるマピオンAndroid Maps APIを提供開始していた。つまり、GoogleMapsを利用しないでも地図アプリが作成できるようになった。

ってことで試しにGPS連動の地図アプリを作ってみた。このアプリでは、GPSで緯度経度を取得した後、その位置を中心にして地図を表示させている。ほんと動くだけのサンプル。

ソースコード

とりあえずメインだけ。

package com.example.android.mapionmap;

import jp.co.mapion.android.maps.*;
import android.content.Context;
import android.location.*;
import android.os.Bundle;
import android.widget.LinearLayout;

public class MapionMapsActivity extends MapActivity implements LocationListener {
    MapView mapView;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        LinearLayout layout = new LinearLayout(this);
        setContentView(layout);
        layout.setOrientation(LinearLayout.VERTICAL);

        LocationManager l = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        l.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

        String apikey = "APIKEY";
        mapView = new MapView(this, apikey);
        layout.addView(mapView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
    }

    public void onLocationChanged(Location location) {
        mapView.getController().animateTo(new GeoPoint((int) (location.getLatitude() * 1E6), (int) (location.getLongitude() * 1E6)));
    }
    
    public void onProviderDisabled(String provider) { }
    public void onProviderEnabled(String provider) { }
    public void onStatusChanged(String provider, int status, Bundle extras) { }
}

APIキーは外してあるから自分で取得してね。

組み込みAndroidには朗報

Google MapsがあるのになんでマピオンAndroid Maps APIを利用するの? という疑問がでてくるのは至極自然な話。現在のところは、Androidケータイ向けアプリであればマピオンAndroid Maps APIを積極的に利用する理由がない。

ただ、現時点でメリットあるなと思ったのが、組み込みAndroidからでもこのAPIが利用できるという事。試しにFroyo on BeagleBoard-xMでアプリを動かしてみたが、ちゃんと地図が表示された。ちなみに、Androidケータイ向けアプリでは利用できるGoogle Maps APIだが、オープンソースAndroidには、システム側にGoogle Mapsのライブラリが含まれていないので利用できないのだ(Googleとの契約が必要らしい)

そういった事情もあり組み込みAndroidではGoogle Mapsを利用した地図アプリを簡単に提供する事ができなかったのだが、このマピオンAndroid Maps APIを利用する事でこの問題が解消される。これでハードがちゃんと揃えば、将来"オレオレカーナビ"を作成するのも夢ではない。

現時点では、マピオンAndroid Maps APIは地図表示以外の機能は豊富ではないのでオレオレカーナビを作成するのは大変なのだが、この先APIの拡充していけば作れるんでないかなーと思うわけで。マピオンのなかの人にここはひとつ頑張ってもらうしか、と願っている。