穂積駅前~大野バスセンターまでのルートを表示することが出来た。さらに、GoogleMapで全部のバス停の表示が見えるように地図の拡大と位置を調整しました。
MyMapActivity.java
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.addOverlay(overlayitem2);
itemizedoverlay.addOverlay(overlayitem3);
GoogleMapの機能を用いてアプリでも地図の縮小拡大はボタン、もしくはピンチ操作(2つの指で広げたりする動作)で操作可能ですが、もう少し簡単に目的のバス停を表示出来るように作成します。
RootSearch.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ルート選択(出発)" />
</LinearLayout>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:onClick="clickButton"
android:text="あ" />
<Button
android:id="@+id/button2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="clickButton"
android:text="か" />
//ボタンを少し省略
<Button
android:id="@+id/button10"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="clickButton"
android:text="わ" />
</LinearLayout>
</HorizontalScrollView>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.70" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="394dp" >
</ListView>
</LinearLayout>
</ScrollView>
</LinearLayout>
後は、各ボタンを押したときに対応するバス停のリストを呼び出すだけです。そして各バス停をタッチするとintentを使ってMyMapに渡しています。MyMap側はいつものif else文で条件分岐しています。
Search.java
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
ListView listView = (ListView) parent;
String item = (String) listView.getItemAtPosition(position);
Intent intent = new Intent(Search.this,jp.co.cqpub.MyMap.MyMapActivity3.class);
intent.putExtra("uu",item);
startActivity(intent);
}
});
MyMapActivity3.java
if(position.equals("穂積駅前(ほづみえきまえ)")){
mapController.setCenter(a);
mapController.setZoom(16);
}
実行画面がこのような感じ
バス停を選択すると、選択したバス停を中心として、マップを拡大した状態になります。
その他にもルート検索より新しく追加した「大野、モレラ-忠節線」を表示できるようにしました。ルート検索ボタンを押すとバス停検索と同様のあいうえお順で表示するようにしています。その中からバス停を選ぶと、そのバス停を通るルートの一覧を表示します。その中から希望のルートを選択することでそのルートを表示します。
RootSearch2.java
if(item.equals("大野-穂積線")){
Intent intent = new Intent(RootSearch2.this,jp.co.cqpub.MyMap.MyMapActivity3.class);
intent.putExtra("uu",item);
startActivity(intent);
}
else if(item.equals("大野-忠節線")){
Intent intent = new Intent(RootSearch2.this,jp.co.cqpub.MyMap.MyMapActivity2.class);
intent.putExtra("uu",item);
startActivity(intent);
}
else if(item.equals("モレラ-忠節線")){
Intent intent = new Intent(RootSearch2.this,jp.co.cqpub.MyMap.MyMapActivity2_morera.class);
intent.putExtra("uu",item);
startActivity(intent);
}
こちらがバス停選択後のルートの選択画面
大野-忠節線を選択するとこのように違ったルートを表示することが出来ます。
戻る
|