goolge 地图地址位置解析
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); } } }
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30
绿豆饼 2020-07-28