如何在我的mapview中设置streetView

时间:2011-05-07 12:54:29

标签: android google-maps android-emulator

如果模拟器无法连接到互联网,我的MapView可以在streetView级别显示Google地图图块吗?因为我的代码在下面工作!!

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。但它已被弃用,我不知道他们是否知道这一点!提前完成。

1 个答案:

答案 0 :(得分:0)

它已被弃用,但setStreetView并不是它看起来的样子,它只显示一个指示器是否街道视图区块“可用于”特定街道,它实际上并未显示街景视图区块。

Google没有公开获取Android API的streeview相机的方法,您可能只显示卫星或2d地图视图。 Google地图无法使用此功能以及许多其他功能供我们使用。

对于其他两种模式,您始终需要互联网连接

参考setStreetView

请注意,控制是否在地图上显示街景可用性(蓝色轮廓),换句话说,它会在街道周围绘制一个蓝色轮廓,您可以获得街景,至少对于谷歌地图,但不是通过Android API