代码改变世界

adnroid 开发谷歌地图的步骤

2011-06-29 13:41  佳佳@——@  阅读(384)  评论(0编辑  收藏  举报
前期准备
安上环境
打开eclispe  打开window-preferences-android-bulid. 有一个default deug keystore 开始运行cmd cd刚才那个keystore里的东西
后面输入 keytool -list -keystore debug.keystore 会提示你输入密码
密码是android ,输入的时候没有显示

然后进入这个网址
http://code.google.com/intl/zh-CN/android/maps-api-signup.html

开发谷歌地图的api网站
http://code.google.com/intl/ja/android/add-ons/google-apis/reference/
-----------------------------------------------------------------------------------------------------------------------
//1.创建地址的管理类 android.location  LocationMnager lm=getSystemService(Context.LOCATION_SERVICE)
//2.得到location
2.1 创建 Criteria 条件类,描述你所在的地址。 criteria=lm.getBestProvider(mCriteria01, true)
2.2 得到提供向导着的名字 strLocationPrivider =locationManager.getBestPrivider(Criteria,boolean sign);
2.3得到Location location=localManager.getLasKnowLocaiton(strLocationProvider);
//3 得到地球上的点也就是 经度 GeoPoint geopoint =new GeoPoint((int)location.getLatitude()*1E6,(int)location.getLongitude()*1E6);
//4 显示所在地址 地图的
 4.1 MapController mc = mv.getController();mv.getController();
4.2 激活地图在点上 mc.animateTo(gp);
4.3 设置地图模式 mv.setTraffic(true);
4.4 设置有放大缩小模式的 mv.displayZoomControls(true);
4.5 计算出当前位置的名字
首先建立一个  Geocoder gc = new Geocoder(GPS.this, Locale.getDefault());
4.5.1 取出经度纬度 double geoLatitude = (int)gp.getLatitudeE6()/1E6;
        double geoLongitude = (int)gp.getLongitudeE6()/1E6;
//通过经纬度找名字。
 List<Address> lstAddress = gc.getFromLocation(geoLatitude, geoLongitude, 1);
创建 address
 /* 判断地址是否为多行 */
        if (lstAddress.size() > 0)
        {
          Address adsLocation = lstAddress.get(0);

          for (int i = 0; i < adsLocation.getMaxAddressLineIndex(); i++)
          {
            sb.append(adsLocation.getAddressLine(i)).append("\n");
          }
          sb.append(adsLocation.getLocality()).append("\n");
          sb.append(adsLocation.getPostalCode()).append("\n");
          sb.append(adsLocation.getCountryName());
        }
        
        /* 将撷取到的地址,组合后放在StringBuilder对象中输出用 */
        strReturn = sb.toString();

//通过名字找经纬度
    Geocoder gc = new Geocoder(TourGuideActivity.this,Locale.getDefault());
                try {//通过Geocoder查找指定名称景点的经纬度列表
                    List<Address> addressList =gc.getFromLocationName(jdmcStr, 1);//获取景点的经纬度列表
if(addressList.size()>0) {

    //如果成功获取了经纬度取列表中的第一条记录
    Address tempa = addressList.get(0);
    int latE6 =(int)(tempa.getLatitude()*1000000);//获取纬度
    int longE6 = (int)(tempa.getLongitude()*1000000);//获取经度
    GeoPoint gp = new GeoPoint(latE6,longE6);


//5  /* 建立LocationManager对象,监听Location变更时事件,更新MapView */
    mLocationManager01.requestLocationUpdates(strLocationPrivider, 2000, 10, mLocationListener01);
 public final LocationListener mLocationListener01 = new LocationListener()
  {
    @Override
    public void onLocationChanged(Location location)
    {
      // TODO Auto-generated method stub
      
      /* 当手机收到位置变更时,将location传入取得地理坐标 */
      processLocationUpdated(location);
    }
    
    @Override
    public void onProviderDisabled(String provider)
    {
      // TODO Auto-generated method stub
      /* 当Provider已离开服务范围时 */
    }