欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android开发:使用google地图做地址解析,androidgoogle,Android开发:使用

来源: javaer 分享于  点击 44614 次 点评:71

Android开发:使用google地图做地址解析,androidgoogle,Android开发:使用


Android开发:使用google地图做地址解析,记得配置一下AndroidManifest.xml。

java代码

package com.android.yibai.antking;import java.util.ArrayList;import java.util.List;import java.util.Locale;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Point;import android.location.Address;import android.location.Geocoder;import android.os.Bundle;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.Projection;public class GeocoderMain extends MapActivity{    //地图显示控制相关的变量定义    private MapView map = null;    private MapController mapCon;    private Geocoder geo;    private static final int ERROR_DIALOG=1;    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        geo= new Geocoder(this,Locale.CHINA);        //获取MapView        map = (MapView)this.findViewById(R.id.mapview);        //设置显示模式//      map.setTraffic(false);//      map.setSatellite(true);        //map.setStreetView(true);        //设置可以缩放        map.setBuiltInZoomControls(true);        List addresses = null;        try{            addresses = geo.getFromLocationName("日照市万平口", 1);            }catch(Exception e){                e.printStackTrace();            }       if(addresses.size()==0){           showDialog(ERROR_DIALOG);           GeoPoint geoBeijing = new GeoPoint(                   39906033,116397700);           mapCon = map.getController();           mapCon.setCenter(geoBeijing);           mapCon.setZoom(4);       }else{           Address address = (Address) addresses.get(0);           //设置初始地图的中心位置           GeoPoint geoPoint =new GeoPoint(            (int)(address.getLatitude()*1E6),            (int)(address.getLongitude()*1E6)           );           mapCon = map.getController();           mapCon.setCenter(geoPoint);           mapCon.setZoom(20);           List<Overlay> overlays = this.map.getOverlays();           PositionOverlay overlay = new PositionOverlay(geoPoint,this,R.drawable.icon);           overlays.add(overlay);       }    }    @Override    protected boolean isRouteDisplayed() {        // TODO Auto-generated method stub        return false;    }    protected Dialog onCreateDialog(int id){        return new AlertDialog.Builder(this).setTitle("查询出错了")        .setMessage("地名出错,请从新输入").create();    }    class PositionOverlay extends Overlay{        private GeoPoint geoPoint;        private Context context;        private int drawable;        public PositionOverlay(GeoPoint geoPoint,Context context,int drawable){            super();            this.geoPoint = geoPoint;            this.context = context;            this.drawable = drawable;        }        public void draw(Canvas canvas,MapView mapView,boolean shadow){            Projection projection = mapView.getProjection();            Point point = new Point();            projection.toPixels(geoPoint, point);            Bitmap bitmap =BitmapFactory.decodeResource(context.getResources(), drawable);            canvas.drawBitmap(bitmap, (point.x-bitmap.getWidth()/2), (point.y-bitmap.getHeight()),new Paint());            super.draw(canvas, mapView, shadow);        }    }}
相关栏目:

用户点评