試しにサンプルコードを書いてみる。

チュートリアルが用意されてたので、これを参考に開発。
YOLP(地図):利用準備 - Yahoo!デベロッパーネットワーク

開発環境とライブラリ

準備

Yahoo! AndroidマップSDK 1.0.9 (mapsdk_android.zip) をダウンロードして解凍。

Jackson JSON Processor Core 2.1.1 (jackson-core-2.1.1.jar) をダウンロード。

Eclipse にて、Android Application Project でプロジェクトを作成。

作成した Eclipse プロジェクトに、ライブラリJARファイル(ymap.jar jackson-core-2.1.1.jar)と画像ファイルを配置。

プロジェクトに追加するファイルは以下の通り。


├── libs
│   ├── jackson-core-2.1.1.jar
│   └── ymap.jar
├── res
│   ├── drawable-hdpi
│   │   ├── argoal.png
│   │   ├── arkeiyu.png
│   │   ├── back.png
│   │   ├── compass48.png
│   │   ├── moreicon32.png
│   │   ├── pin_goal.png
│   │   ├── pin_green_l.png
│   │   ├── pin_head_l.png
│   │   ├── pin_red_l.png
│   │   ├── pin_route.png
│   │   ├── pin_start.png
│   │   └── pin_violet_l.png
│   ├── drawable-mdpi
│   │   ├── argoal.png
│   │   ├── arkeiyu.png
│   │   ├── back.png
│   │   ├── compass48.png
│   │   ├── moreicon32.png
│   │   ├── pin_goal.png
│   │   ├── pin_green_l.png
│   │   ├── pin_head_l.png
│   │   ├── pin_red_l.png
│   │   ├── pin_route.png
│   │   ├── pin_start.png
│   │   └── pin_violet_l.png
│   ├── drawable-xhdpi
│   │   ├── argoal.png
│   │   ├── arkeiyu.png
│   │   ├── back.png
│   │   ├── compass48.png
│   │   ├── moreicon32.png
│   │   ├── pin_goal.png
│   │   ├── pin_green_l.png
│   │   ├── pin_head_l.png
│   │   ├── pin_red_l.png
│   │   ├── pin_route.png
│   │   ├── pin_start.png
│   │   └── pin_violet_l.png

Eclipse プロジェクトの Propeties から Java Build Path にて、ライブラリ (ymap.jar と jackson-core-2.1.1.jar) をビルド・パスに追加。

アプリケーションIDが無い場合は取得しておく。
Yahoo!デベロッパーネットワーク ヘルプ - アプリケーションIDとは

サンプルのソースコード

修正したのは、メインのアクティビティクラス (MainActivity.java) と AndroidManifest.xml の2ファイルだけ。

MainActivity.java


package info.nilab.hogeymaps;
 
import android.os.Bundle;
import android.view.Menu;
import jp.co.yahoo.android.maps.*;
 
// YOLP(地図):APIレファレンス - Yahoo!デベロッパーネットワーク
// http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/androidsdk/reference/
public class MainActivity extends MapActivity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        MapView mapView = new MapView(this,"<YOUR APPLICATION ID>");
        mapView.setBuiltInZoomControls(true);
        mapView.setScalebar(true);
        MapController c = mapView.getMapController();
        // 渋谷駅
        double lat = 35.658516;
        double lon = 139.701773;
        GeoPoint gp = new GeoPoint((int)(lat * 1000000), (int)(lon * 1000000));
        c.setCenter(gp);
        c.setZoom(3);
        setContentView(mapView);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
 
    @Override
    protected boolean isRouteDisplayed() {
       return false;
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.nilab.hogeymaps"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="15" />
 
    <!--
    // YOLP(地図):地図を表示する - Yahoo!デベロッパーネットワーク
    // http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/androidsdk/tutorial2.html
    -->
    <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" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="info.nilab.hogeymaps.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

サンプルコードによる Android アプリのスクリーンショット

ビルドして、 Android 端末実機 (Softbank ARROWS A 101F) で動作確認してみた。

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Yahoo! AndroidマップSDK

Ref.

tags: yahoo_maps_api android

Posted by NI-Lab. (@nilab)