[Java] google地图地址解析 →→→→→进入此内容的聊天室

来自 , 2020-06-02, 写在 Java, 查看 96 次.
URL http://www.code666.cn/view/0cc918de
  1. package com.android.yibai.antking;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Locale;
  6.  
  7. import android.app.AlertDialog;
  8. import android.app.Dialog;
  9. import android.content.Context;
  10. import android.graphics.Bitmap;
  11. import android.graphics.BitmapFactory;
  12. import android.graphics.Canvas;
  13. import android.graphics.Paint;
  14. import android.graphics.Point;
  15. import android.location.Address;
  16. import android.location.Geocoder;
  17. import android.os.Bundle;
  18.  
  19. import com.google.android.maps.GeoPoint;
  20. import com.google.android.maps.MapActivity;
  21. import com.google.android.maps.MapController;
  22. import com.google.android.maps.MapView;
  23. import com.google.android.maps.Overlay;
  24. import com.google.android.maps.Projection;
  25.  
  26. public class GeocoderMain extends MapActivity{
  27.     //地图显示控制相关的变量定义
  28.         private MapView map = null;
  29.         private MapController mapCon;
  30.         private Geocoder geo;
  31.         private static final int ERROR_DIALOG=1;
  32.         public void onCreate(Bundle savedInstanceState){
  33.                 super.onCreate(savedInstanceState);
  34.                 setContentView(R.layout.main);
  35.                 geo= new Geocoder(this,Locale.CHINA);
  36.                 //获取MapView
  37.                 map = (MapView)this.findViewById(R.id.mapview);
  38.                 //设置显示模式
  39. //              map.setTraffic(false);
  40. //              map.setSatellite(true);
  41.                 //map.setStreetView(true);
  42.                 //设置可以缩放
  43.                 map.setBuiltInZoomControls(true);
  44.                 List addresses = null;
  45.                 try{
  46.                         addresses = geo.getFromLocationName("日照市万平口", 1);
  47.                        
  48.                         }catch(Exception e){
  49.                                 e.printStackTrace();
  50.                         }
  51.            if(addresses.size()==0){
  52.                    showDialog(ERROR_DIALOG);
  53.                    GeoPoint geoBeijing = new GeoPoint(
  54.                                    39906033,116397700);
  55.                    mapCon = map.getController();
  56.                    mapCon.setCenter(geoBeijing);
  57.                    mapCon.setZoom(4);
  58.                    
  59.            }else{
  60.                    Address address = (Address) addresses.get(0);
  61.                    //设置初始地图的中心位置
  62.                    GeoPoint geoPoint =new GeoPoint(
  63.                         (int)(address.getLatitude()*1E6),
  64.                         (int)(address.getLongitude()*1E6)
  65.                    );
  66.                    mapCon = map.getController();
  67.                    mapCon.setCenter(geoPoint);
  68.                    mapCon.setZoom(20);
  69.                    List<Overlay> overlays = this.map.getOverlays();
  70.                    PositionOverlay overlay = new PositionOverlay(geoPoint,this,R.drawable.icon);
  71.                    overlays.add(overlay);
  72.                  
  73.                    
  74.            }
  75.         }
  76.         @Override
  77.         protected boolean isRouteDisplayed() {
  78.                 // TODO Auto-generated method stub
  79.                 return false;
  80.         }
  81.         protected Dialog onCreateDialog(int id){
  82.                 return new AlertDialog.Builder(this).setTitle("查询出错了")
  83.                 .setMessage("地名出错,请从新输入").create();
  84.         }
  85.         class PositionOverlay extends Overlay{
  86.                 private GeoPoint geoPoint;
  87.                 private Context context;
  88.                 private int drawable;
  89.                 public PositionOverlay(GeoPoint geoPoint,Context context,int drawable){
  90.                         super();
  91.                         this.geoPoint = geoPoint;
  92.                         this.context = context;
  93.                         this.drawable = drawable;
  94.                        
  95.                 }
  96.                 public void draw(Canvas canvas,MapView mapView,boolean shadow){
  97.                         Projection projection = mapView.getProjection();
  98.                         Point point = new Point();
  99.                         projection.toPixels(geoPoint, point);
  100.                         Bitmap bitmap =BitmapFactory.decodeResource(context.getResources(), drawable);
  101.                         canvas.drawBitmap(bitmap, (point.x-bitmap.getWidth()/2), (point.y-bitmap.getHeight()),new Paint());
  102.                         super.draw(canvas, mapView, shadow);
  103.                 }
  104.         }
  105.  
  106. }
  107.  
  108.  
  109. //java/1310

回复 "google地图地址解析"

这儿你可以回复上面这条便签

captcha