gpt4 book ai didi

android - Geopoint Long 和 Lat 表示为 int,但 MediaStore 中的 Long 和 Lat 字段表示为 double ?

转载 作者:搜寻专家 更新时间:2023-11-01 08:10:46 27 4
gpt4 key购买 nike

我对这些字段的数据类型感到困惑。我想获取存储在手机上的图像的经度和纬度,并将其表示为地理点。我的代码是:

double long_ = imageCursor.getDouble(imageCursor.getColumnIndex(MediaStore.Images.Media.LONGITUDE));
double lat = imageCursor.getDouble(imageCursor.getColumnIndex(MediaStore.Images.Media.LATITUDE));

之所以会产生混淆,是因为这些是浮点值,但 Geopoint 构造函数将 long 和 lat 作为 int 类型。我必须手动进行一些转换吗?

最佳答案

Is there some conversion I must do manually?

是的。引用 the documentation , GeoPoint 是“表示一对纬度和经度的不可变类,存储为整数微度数”。

Android 的其余部分,包括 MediaStore,将纬度和经度保存为以度为单位的浮点值,而不是以微度为单位的整数值。创建 GeoPoint 时,您需要进行转换。我使用这样的实用方法:

  private GeoPoint getPoint(double lat, double lon) {
return(new GeoPoint((int)(lat*1000000.0), (int)(lon*1000000.0)));
}

关于android - Geopoint Long 和 Lat 表示为 int,但 MediaStore 中的 Long 和 Lat 字段表示为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com