チュートリアル

Yahoo! AndroidマップSDKの主要機能を一通り体験していただくための開発チュートリアルを用意しました。
「利用準備」を済ませたうえでご利用ください。

ルート案内を地図で表示する

取得した現在位置情報をもとに、地図を使ったルート案内機能を提供します。

RouteOverlayをNaviControllerに設定することで、ルート案内情報を取得することができます。

1.MapActivityのサブクラスを用意し、NaviControllerListenerインターフェースを実装します。

         public class MapTestActivity extends MapActivity implements NaviControllerListener, RouteOverlayListener
      

2.ルート検索終了後、NaviControllerを作成しRouteOverlayとMapViewを設定します。

設定後、「start」メソッドを実行することでGPSが起動しルート案内処理を開始します。

         //ルート検索が正常に終了した場合
         public boolean finishRouteSearch(RouteOverlay routeOverlay) {
           //NaviControllerを作成しRouteOverlayインスタンスを設定
           naviController = new NaviController(this,routeOverlay);

           //MapViewインスタンスを設定
           naviController.setMapView(mapView);

           //NaviControllerListenerを設定
           naviController.setNaviControlListener(this);

           //案内処理を開始
           naviController.start();
           return false;
         }
      

3. NaviControllerListenerでルート案内情報を受け取ることができます。

          //現在位置が更新された場合
          public boolean onLocationChanged(NaviController arg0) {
             //目的地までの残りの距離
             double rema_dist = naviController.getTotalDistance();

             //目的地までの残りの時間
             double rema_time = naviController.getTotalTime();

             //出発地から目的地までの距離
             double total_dist = naviController.getDistanceOfRemainder();

             //出発地から目的地までの時間
             double total_time = naviController.getTimeOfRemainder();

             //現在位置
             Location location = naviController.getLocation();
             return false;
          }

          //現在位置取得エラーが発生した場合
          public boolean onLocationTimeOver(NaviController arg0) {
              return false;
          }

          //現在位置の精度が悪い場合
          public boolean onLocationAccuracyBad(NaviController arg0) {
              return false;
          }

          //ルートから外れたと判断された場合
          public boolean onRouteOut(NaviController arg0) {
              return false;
          }

          //目的地に到着した場合
          public boolean onGoal(NaviController arg0) {
          //案内処理を継続しない場合は停止させる
          naviController.stop();
              return false;
          }
      

表示例:ルート案内を地図で表示する
ルート案内を地図で表示する