2011-06-24 9 views
2

私は、Googlebot経由でStreetViewとSatelliteの間でGoogleMapsの表示を切り替える必要があります。StreetViewを変更する<->衛星GoogleマップAndroid

は、ここに私のコードです..

public boolean onCreateOptionsMenu(Menu menu){ 

    menu.add(0, 0, 0, "StreetView"); 
    menu.add(0, 0, 1, "Satellite"); 

    return true; 
} 

public boolean onOptionsItemSelected (MenuItem item){ 

    switch (item.getItemId()){ 
     case 0: 
      mapView.setStreetView(true); 
     return true; 

     case 1 : 
      mapView.setSatellite(true); 
     return true; 

    } 

    return false; 
} 

は動作しません何が間違っているのですか?

おかげで、 prexx

答えて

7

あなたはそれが動作しないと言うとき、私たちは本当にあなたを試してみて、助けるために多くの情報が必要!それはクラッシュする、それはストリート/土地のビューまたは通常の地図などに滞在しているかどうか、より多くの情報を提供しようとすると、それがクラッシュした場合は、logcatのコピーを投稿します。 (編集:私はちょうど無効にし、それはそれは、メニューボタンIDのでなければならない作品呼び出すことなく、それを試してみました)

mapView.invalidate(); 

あなたがする必要がある

私は、あなたが不足しているすべてのラインだと思いますこれを呼び出すと、mapView自体が更新されるので、mapView設定を変更するたびに呼び出します。その後

<?xml version="1.0" encoding="utf-8"?> 
<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:title="Street View" android:numericShortcut="1" android:id="@+id/mapStreet" ></item> 
    <item android:title="Sat View" android:numericShortcut="2" android:id="@+id/mapSat"></item> 
</menu> 


そのdoesntの仕事は、それは、ボタンのためのあなたのIDのかもしれ場合

のでxmlファイルint型のres /メニュー/など自分のメニューを設定してみてください、あなたのスイッチで認識アレントコードを変更して:

public boolean onCreateOptionsMenu(Menu menu){ 
    super.onCreateOptionsMenu(menu); 
    MenuInflater oMenu = getMenuInflater(); 
    oMenu.inflate(R.menu.mapsmenu, menu); 
    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){ 
    case R.id.mapStreet: 
     mapView.setStreetView(true); 
     mapView.setSatellite(false); 
     mapView.invalidate(); 
     return true; 

    case R.id.mapSat: 
     mapView.setSatellite(true); 
     mapView.setStreetView(false); 
     mapView.invalidate(); 
     return true; 
    } 
    return false; 
} 
+0

UFFを行う...私は他の方法でメニューを設定するには、...あなたの第二の先端を高速に私の質問をpostet。私はちょうど--item.getItemId()を "Toasted"し、両方のメニューボタンで0を認識しました。私の失敗はここにありました:menu.add(0、1、1、 "Satellite");大変申し訳ありませんが、あなたのケニーに – Prexx

+0

あなたのメニューを設定すると、人生が楽になります。なぜなら、IDはすべて登録されていて、非常に簡単なボタンを追加したいからです。 – Kenny

5

MapViewを使用しないでください。 使用Googleマップと

GoogleMap map; 
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
+3

3年遅れですが、とにかくです。 – Prexx

関連する問題