位置情報を写真に付加して保存する
- Android
 - 
                        
2011-11-16                                                                                                 - 更新:2012-04-25                                             
この記事は最終更新日から1年以上経過しています。
                    
                    前回のオートフォーカス撮影に位置情報を付加する機能を追加します。
implementsでLocationListenerを実装します。
HelloCameraActivity.java
public class HelloCameraActivity extends Activity implements LocationListener {
 private AutoFocusPreview mPreview;
 private LocationManager mLocationManager;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
  mPreview = new AutoFocusPreview(this);
  setContentView(mPreview);
 }
 @Override
 protected void onResume() {
  if (mLocationManager != null) {
   mLocationManager.requestLocationUpdates(
    //LocationManager.GPS_PROVIDER, // 精度は高いが遅い(誤差15m程度)
    LocationManager.NETWORK_PROVIDER, // 精度は低いが速い(誤差100m程度)
       //LocationManager.PASSIVE_PROVIDER, //位置情報の修正を行わない特殊なプロバイダー(他アプリ等で測位された場合に、その位置情報を流用するらしい)
    0, //通知する時間の間隔をミリ秒で指定します
    0, //通知する距離の間隔をメートルで指定します
    this);
  }
  super.onResume();
 }
 @Override
 protected void onPause() {
  if (mLocationManager != null) {
   mLocationManager.removeUpdates(this);
  }
  super.onPause();
 }
 @Override
 public void onLocationChanged(Location location) {
  AutoFocusPreview.location = location;
 }
 @Override
 public void onProviderDisabled(String provider) {
 }
 @Override
 public void onProviderEnabled(String provider) {
 }
 @Override
 public void onStatusChanged(String provider, int status, Bundle extras) {
 }
CameraPreview.javaは省きます
前回のAutoFocusPreview.javaを変更します。
位置情報登録用のロケーションをstatic宣言
public static Location location;
ContentValuesに緯度経度の情報を追加する
ContentValues values = new ContentValues(7); values.put(Images.Media.TITLE, name); values.put(Images.Media.DISPLAY_NAME, filename); values.put(Images.Media.DATE_TAKEN, dateTaken); values.put(Images.Media.MIME_TYPE, "image/jpeg"); values.put(Images.Media.DATA, filePath); values.put(Images.Media.LATITUDE, location.getLatitude()); values.put(Images.Media.LONGITUDE, location.getLongitude()); return cr.insert(IMAGE_URI, values);
                        この記事がお役に立ちましたらシェアお願いします
                    
                    
                
                        4,003 views 
                                                                    
                    
                



