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.
[java] view plain copy print ?
LocationManager locationManager;
locationManager = (LocationManager) getSystemService(context);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setBearingRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
true);
.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)
,
:
- private void updateWithNewLocation(Location location) {
- String coordinate;
- TextView loc = (TextView) findViewById(R.id.loc);
- String addressStr = "no address
";
-
- if (location != null) {
- double lat = location.getLatitude();
- double lng = location.getLongitude();
- coordinate = "Latitude:" + lat + "
Longitude:" + lng;
- double latitude = location.getLatitude();
- double longitude = location.getLongitude();
- Geocoder geocoder = new Geocoder(context, Locale.getDefault());
- try {
- List<Address> addresses = geocoder.getFromLocation(latitude,
- longitude, 1);
- StringBuilder sb = new StringBuilder();
- if (addresses.size() > 0) {
- Address address = addresses.get(0);
- for (int i = 0; i < address.getMaxAddressLineIndex(); i++) {
- sb.append(address.getAddressLine(i)).append("
");
- }
- sb.append(address.getLocality()).append("
");
- sb.append(address.getLocality()).append("
");
- sb.append(address.getCountryName());
- addressStr = sb.toString();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- } else {
- coordinate = "no coordinate!
";
- }
- loc.setText("your coordinate:
" + coordinate + "
"
- + addressStr);
- }