歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android百度地圖開發之通過地址獲得經緯度

Android百度地圖開發之通過地址獲得經緯度

在百度地圖開發的時候,我們經常會通過地址去得到當前地址的經緯度,那麼我們怎麼得到呢?
 
方法一、
 
public GeoPoint getGeoPointBystr(String str) {
  GeoPoint gpGeoPoint = null;
  if (str!=null) {
    Geocoder gc = new Geocoder(MyMapActivity.this,Locale.CHINA);
      List<Address> addressList = null;
    try {
 
    addressList = gc.getFromLocationName(str, 1);
        if (!addressList.isEmpty()) {
      Address address_temp = addressList.get(0);
      //計算經緯度
      double Latitude=address_temp.getLatitude()*1E6;
      double Longitude=address_temp.getLongitude()*1E6;
      System.out.println("經度:"+Latitude);
      System.out.println("緯度:"+Longitude);
      //生產GeoPoint
      gpGeoPoint = new GeoPoint((int)Latitude, (int)Longitude);
    }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  return gpGeoPoint;
  }
 
此方法只需傳入一個地址即可(當然,這裡應該說是一個合法的地址)
 
此方法得到一個GeoPoint對象,通過GeoPoint對象.getLatitude()/getLongitude()就可以得到對應的經緯度
 
但是值得注意的是,以上方法存在API版本問題,話說2.2版本的不可以用
 
 
 
方法二、(個人比較推薦這種方法)
 
mkSearch.geocode("詳細地址", "城市");
 
這裡的詳細地址可以通過MKSuggestionInfo對象.key得到,而城市也可以根據MKSuggestionInfo對象.city得到
 
調用以上方法後,就會在執行實現MKSearchListener接口類中的以下方法
 
public void onGetAddrResult(MKAddrInfo info, int error) {
    // TODO Auto-generated method stub
    System.out.println("經緯度:"+info.geoPt.getLatitudeE6()+"  "+info.geoPt.getLongitudeE6());
  }
 
這樣就可以得到了經緯度

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved