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。但它已被弃用,我不知道他们是否知道这一点!提前完成。
答案 0 :(得分:0)
它已被弃用,但setStreetView并不是它看起来的样子,它只显示一个指示器是否街道视图区块“可用于”特定街道,它实际上并未显示街景视图区块。
Google没有公开获取Android API的streeview相机的方法,您可能只显示卫星或2d地图视图。 Google地图无法使用此功能以及许多其他功能供我们使用。
对于其他两种模式,您始终需要互联网连接
请注意,控制是否在地图上显示街景可用性(蓝色轮廓),换句话说,它会在街道周围绘制一个蓝色轮廓,您可以获得街景,至少对于谷歌地图,但不是通过Android API