Androidは経緯度で地理情報を取得


まず、LocationManager、Location、およびCriteriaを取得します.
[java] view plain copy print ?
LocationManager locationManager;  
  •                 String context = Context.LOCATION_SERVICE;  

  •                 locationManager = (LocationManager) getSystemService(context);  
  •                 Criteria criteria = new Criteria();  

  •                 criteria.setAccuracy(Criteria.ACCURACY_FINE);  
  •                 criteria.setAltitudeRequired(false);  

  •                 criteria.setBearingRequired(false);  
  •                 criteria.setCostAllowed(false);  

  •                 criteria.setPowerRequirement(Criteria.POWER_LOW);  
  •                 String provider = locationManager.getBestProvider(criteria,  

  •                         true);  
  •                 Location location = locationManager  

  •                         .getLastKnownLocation(provider);  
    Criteriaクラスの紹介:
    Criteriaは「精度」を意味し、Criteriaクラスはいくつかのクエリー条件を提供します.
    (1) public void setAccuracy( int accuracy)
    位置解析の精度、高または低
    パラメータ:Criteria.ACCURACY_FINE, Criteria. ACCURACY_COARSE, ;

    (2) public void setAltitudeRequired(booleanaltitudeRequired)

    (3) public void setBearingRequired(boolean bearingRequired)

    (4) public void setCostAllowed(boolean costAllowed)

    (5) public void setPowerRequirement(int level)

    , 、 、 、 , Criteria. NO_REQUIREMENT,Criteria. POWER_LOW,Criteria. POWER_MEDIUM, orCriteria. POWER_HIGH,

    (6) public void setSpeedRequired(boolean speedRequired)

    [java] view plain copy print ?
    1. private void updateWithNewLocation(Location location) {  
    2.         String coordinate;  
    3.         TextView loc = (TextView) findViewById(R.id.loc);  
    4.         String addressStr = "no address 
      "
      ;  
    5.   
    6.         if (location != null) {  
    7.             double lat = location.getLatitude();  
    8.             double lng = location.getLongitude();  
    9.             coordinate = "Latitude:" + lat + "
      Longitude:"
       + lng;  
    10.             double latitude = location.getLatitude();  
    11.             double longitude = location.getLongitude();  
    12.             Geocoder geocoder = new Geocoder(context, Locale.getDefault());  
    13.             try {  
    14.                 List<Address> addresses = geocoder.getFromLocation(latitude,  
    15.                         longitude, 1);  
    16.                 StringBuilder sb = new StringBuilder();  
    17.                 if (addresses.size() > 0) {  
    18.                     Address address = addresses.get(0);  
    19.                     for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {  
    20.                         sb.append(address.getAddressLine(i)).append("
      "
      );  
    21.                     }  
    22.                     sb.append(address.getLocality()).append("
      "
      );  
    23.                     sb.append(address.getLocality()).append("
      "
      );  
    24.                     sb.append(address.getCountryName());  
    25.                     addressStr = sb.toString();  
    26.                 }  
    27.             } catch (IOException e) {  
    28.                 e.printStackTrace();  
    29.             }  
    30.         } else {  
    31.             coordinate = "no coordinate!
      "
      ;  
    32.         }  
    33.         loc.setText("your coordinate:
      "
       + coordinate + "
      "
        
    34.                 + addressStr);  
    35.     }