2011-05-07 58 views
0

如果模擬器無法連接到互聯網,我的MapView可以在streetView級別顯示Google地圖圖塊嗎?因爲我的代碼下面沒有工作!如何在我的地圖視圖中設置streetView

package com.HelloMapView; 

import java.util.List; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 
import com.google.android.maps.OverlayItem; 

import android.app.Activity; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.widget.LinearLayout; 

public class HelloMapView extends MapActivity { 
    private static MapController myMapController = null; 
    private static GeoPoint geoPoint = new GeoPoint((int)(25.24243399999999 * 1E6),(int)(55.30611937301637 * 1E6)); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     MapView mapView = (MapView) findViewById(R.id.mapview); 
     mapView.displayZoomControls(false); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setFocusable(true); 
     myMapController = mapView.getController(); 
     myMapController.animateTo(geoPoint); 
     myMapController.setZoom(15); 
     // mapView.invalidate(); 
     // mapView.setFocusable(true); 
     myMapController.setCenter(geoPoint); 
     List<Overlay> mapOverlays = mapView.getOverlays(); 
     Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
     HelloItemizedOverlay itemizedOverlay = new HelloItemizedOverlay(drawable); 
     OverlayItem overlayItem = new OverlayItem(geoPoint,"abc",""); 
     itemizedOverlay.addoverlay(overlayItem); 
     mapOverlays.add(itemizedOverlay); 
     //mapView.setSatellite(true); 
     mapView.setStreetView(true); 




    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

延伸ItemizedOverlay

package com.HelloMapView; 

import java.util.ArrayList; 

import android.graphics.drawable.Drawable; 

import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.OverlayItem; 

public class HelloItemizedOverlay extends ItemizedOverlay { 
    private ArrayList<OverlayItem> mOverlay=new ArrayList<OverlayItem>(); 
    public HelloItemizedOverlay(Drawable defaultMarker) { 
     super(boundCenterBottom(defaultMarker)); 
    } 
    @Override 
    protected OverlayItem createItem(int i) { 
     return mOverlay.get(i); 
    } 
    @Override 
    public int size() { 
     return mOverlay.size(); 
    } 
    public void addoverlay(OverlayItem overlay) 
    { 
     mOverlay.add(overlay); 
     populate(); 
    } 

} 

有人借給我一隻手的其他類。加上eclipse說setStreetView已被棄用,不再受支持。我不知道我是否孤獨,因爲其他論壇都說我的問題是我應該使用MapView類中的setStreetView。但它被棄用,我不知道他們是否知道這一點!提前Thanx。

回答

0

它被棄用,但setStreetView不是它看起來似乎,它只顯示街道視圖瓷磚「是否」可用於特定街道,它並不實際顯示街景視圖瓷磚。

Google沒有公開獲取android API的streeview相機的方法,您可能只會顯示衛星或2d地圖視圖。很遺憾,Google地圖無法使用這些功能以及其他許多功能。

而對於其它兩種模式下,你總是需要一個互聯網連接

參考setStreetView

注意,它說控制街景可用性(藍色輪廓)是否換句話說地圖上顯示它會畫出街道周圍的藍色輪廓,您可以獲得街景,至少對於谷歌地圖而言,但不通過Android API

相關問題