java 获取带有GPS信息图片的拍摄地址

前言

 

GPS系列——Java端,github项目地址

前面已经了解或者实现了Android端的gps上传定位信息,现在就差后台的接口支持了。

我们需要数据库来储存上传的定位信息,并且还要满足不同的人的数据隔离,也就是用户系统。

下面就给大家介绍Java端的主要实现和代码,更多更详细的内容,还是得看源码。

收获

学习完这篇文章你将收获:

springboot的主流应用

上传文件及其文件映射

gps定位

Java技术框架

java8

springboot 

不废话,先上图:

步骤:

1.读取带有GPS信息图片的元数据中的经纬度

2.把WGS经纬度坐标转换转换成double型的GCJ坐标

3.调用逆地理编码接口获取拍摄地址

源码资源下载 https://download.csdn.net/download/xiyuansu/86742387

经纬水印相机是一款安卓开发的相机应用程序,它可以在拍摄照片时添加经纬度信息作为水印。下面是一个简单的示例代码,演示如何在安卓开发中实现经纬水印相机功能: 1. 首先,在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 2. 在布局文件中添加一个SurfaceView用于显示相机预览: ```xml <SurfaceView android:id="@+id/surfaceView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 在Activity中获取相机实例,并设置预览显示: ```java private Camera camera; private SurfaceView surfaceView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); surfaceView = findViewById(R.id.surfaceView); // 获取相机实例 camera = Camera.open(); // 设置相机预览显示 try { camera.setPreviewDisplay(surfaceView.getHolder()); camera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } ``` 4. 在Activity中添加一个按钮,用于拍摄照片: ```xml <Button android:id="@+id/btnCapture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Capture" android:onClick="capturePhoto" /> ``` 5. 在Activity中实现拍摄照片的方法,并添加经纬度水印: ```java public void capturePhoto(View view) { // 拍摄照片 camera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // 创建一个新的Bitmap对象 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); // 获取经纬度信息 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); double latitude = location.getLatitude(); double longitude = location.getLongitude(); // 添加经纬度水印 Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setColor(Color.RED); paint.setTextSize(30); canvas.drawText("经度:" + longitude + ",纬度:" + latitude, 50, 50, paint); // 保存带有水印的照片 String filePath = Environment.getExternalStorageDirectory().getPath() + "/watermark.jpg"; try { FileOutputStream fos = new FileOutputStream(filePath); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } // 重新开始预览 camera.startPreview(); } }); } ``` 以上代码演示了如何在安卓开发中实现经纬水印相机功能。你可以根据自己的需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiyuansu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值