Android通过地址反查经纬度——原生位置信息

2024-09-03 15:08

本文主要是介绍Android通过地址反查经纬度——原生位置信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android通过地址反查经纬度——原生位置信息

通过地址反查经纬度,得到的经纬度是基于火星坐标系GCJ02LL的经纬度,如果使用百度定位sdk,则需要转化为bd09LL的坐标系。

Geocoder gc = new Geocoder(MapFragment.this.getActivity(), Locale.CHINA);
List<Address> addresseList = null;
try {addresseList = gc.getFromLocationName(voiceQueryText, 1);if(addresseList!=null&&addresseList.size()>0){Address address_temp = result.get(0);double lat = address_temp.getLatitude();double lon = address_temp.getLongitude();//火星坐标系转化为百度坐标系CoordGCJ02LL2BDLL gcj02ll2bdll = new CoordGCJ02LL2BDLL();double coord[] = gcj02ll2bdll.convert(lon, lat);Log.d("经纬度","lon="+coord[0]+";lat="+coord[1]);}
} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();
}

火星坐标系转化为百度坐标系

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class CoordGCJ02LL2BDLL{public CoordGCJ02LL2BDLL(){//cn/com/XXX/XXX/XXX/此为CoordGCJ02LL2BDLL所在包名logger = LogFactory.getLog(cn/com/XXX/XXX/XXX/CoordGCJ02LL2BDLL);}public double[] convert(double gcjlon, double gcjlat){try{double bdlonlat[] = gcj2bd(gcjlat, gcjlon);logger.debug((new StringBuilder()).append("GCJ02\u7ECF\u7EAC\u5EA6\u8F6C\u767E\u5EA6\u7ECF\u7EAC\u5EA6\uFF0C\u8F93\u5165\uFF1Agcj02lon=").append(gcjlon).append(" ,gcj02lat=").append(gcjlat).append(",\u7ED3\u679C\uFF1ABaiduLon=").append(bdlonlat[1]).append(",BaiduLat=").append(bdlonlat[0]).toString());return (new double[] {bdlonlat[1], bdlonlat[0]});}catch(Exception e){return (new double[] {-1D, -1D});}}public static double[] gcj2bd(double lat, double lon){double x = lon;double y = lat;double z = Math.sqrt(x * x + y * y) + 2.0000000000000002E-005D * Math.sin(y * x_pi);double theta = Math.atan2(y, x) + 3.0000000000000001E-006D * Math.cos(x * x_pi);double bd_lon = z * Math.cos(theta) + 0.0064999999999999997D;double bd_lat = z * Math.sin(theta) + 0.0060000000000000001D;return (new double[] {bd_lat, bd_lon});}
}

这篇关于Android通过地址反查经纬度——原生位置信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133302

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk