Google MAP模板

//在不支持多点触屏的设备上实现地图的放大缩小

//开启内置缩放控制,在地图下方显示2个缩放按钮

Private MapView mapView=...

mapView.setBulitInZoomControls(true);

//设置地图等级

mapView.setZoom(12);

 

//通过编程方式控制

获得MapController对象

MapController mc=mapView.getController();

放大缩小分别利用MapController的zoomIn()和zoomOut()方法

 

改变地图视图
mapView.setSatellite(true);//卫星模式

mapView.setTraffic(true);//交通流量模式

mapView.setStreetView(true);//街景模式

修改地图属性

mapView.setClickable(true);

mapView.setEnabled(true);

显示一个特定的位置

String coordinates[] = {"39.90960456049752", "116.3972282409668"}; 
double lat = Double.parseDouble(coordinates[0]); 
double lng = Double.parseDouble(coordinates[1]); 
p = new GeoPoint() 
{ 
    (int)(lat * 1E6); 
    (int)(lng * 1E6); 
}; 
mc.animateTo(p); 
mapView.invalidate(); 
增加标记:
public class MainActivity extends MapActivity 
{ 
    private MapView mapView; 
    private MapConrtoller mc; 
    private GEOPoint p; 
    class MapOverlay extends Overlay 
    { 
        public boolean draw(Canvas canvas, MapView mapView, 
                            boolean shadow, long when) 
        { 
            super.draw(canvas, mapView, shadow); 
            Point screenPts = new Point(); 
            mapView.getProjection().toPixels(p, screenPts); 
            Bitmap bmp = BitmapFactory.decodeResource(getResource, R.drawable.pinicon); 
            canvas.drawBitmap(bmp, screenPts.x - 32, screenPts.y - 59, null); 
            return true; 
        } 
    } 
    public void onCreate(Bundle savedInstanceState) 
    { 
        ... 
        MapOverlay mapOverlay = new MapOverlay(); 
        list<Overlay> listOfOverlays = mapView.getOverlays(); 
        listOfOverlays.clear(); 
        listOfOverlays.add(mapOverlay); 
        mapView.invalidate();//note 
    } 
    protected boolean isRouteDisplayed() 
    { 
        return false; 
    } 
} 
//获取触摸位置
//覆写overlay类的onTouchEvent()方法
public boolean onTouchEvent(MotionEvent event, MapView mapView) 
{ 
    if(event.getAction() == 1) 
    { 
        GeoPoint p = mapView.getProjection().fromPixels((int)event.getX(), (int)event.getY()); 
    } 
    return false; 
} 
//给定经纬度,返回地址
public String getAddresses()
{
    String addressString="没有找到地址";
    Geocoder gc=new Geocoder(mMobileMap,Locale.getDefault());
    try
    {
        List<Address> addresses=gc.getFromLocation(mLocation.getLatitude(),mLocation.getLongitude(),1);
        StringBuilder sb=new StringBuilder();
        if(addresses.size()>0)
        {
               Address address=addresses.get(0);
                sb.append("地址: ");
                for(int i=0;i<address.getMaxAddressLineIndex();i++)
                {
                    sb.append(address.getAddressLine(i));
                }
                addressString=sb.toString();
        }
    }
    catch(IOException e)
    {
    }
    return addressString;
}
//给定名字,返回经纬度
public void searchName(String name) 
{ 
    try 
    { 
        List<Address> addresses = mGeoCoder.getFromLocationName(name, 1); 
        if(addresses.size() > 0) 
        { 
            Address address = addresses.get(0); 
            mLocation.setLatitude(address.getLatitude()); 
            mLocation.setLongitude(address.getLongitude()); 
        } 
    } 
    catch(IOException e) 
    { 
    } 
} 

posted @ 2013-02-09 15:19  java程序员-c  阅读(241)  评论(0编辑  收藏  举报