位置情報を写真に付加して保存する
- 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,004 views




