Android Google Map实例 - 获取cdma基站经纬度(Android mapview)

2024-02-07 17:08

本文主要是介绍Android Google Map实例 - 获取cdma基站经纬度(Android mapview),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

已经将GPS信息标注在google map上了,怎么将目前正在提供服务的基站位置也标注在google map上呢?

  标注的方法与标注自定义图标一样,关键是如何获取cdma cell location,为这个问题困扰了好几天,有人说利用google gears方法,不过这种方法原理是取得目前通讯的基站信息譬如cid nid等,上网查询并反馈对应的基站经纬度,需要对应的网站有足够的基站经纬度信息。

 

  对于CDMA手机其实有更方便的方法,就是利用CdmaCellLocation.getBaseStationLatitude(),但是getBaseStationLatitude()获取的是int值的纬度,在android doc里也没有详细的阐述。国外的论坛也有人说getBaseStationLatitude()返回的是垃圾信息,昨天google到一个泡菜国兄弟的帖子才找到getBaseStationLatitude()获取的是int值与真正经纬度之间的关系。

 

  也就是CDMA层3协议的定义:

    /** 
     * Latitude is a decimal number asspecified in 3GPP2 C.S0005-A v6.0.
     * It is represented in units of 0.25seconds and ranges from -1296000
     * to 1296000, both values inclusive(corresponding to a range of -90
     * to +90 degrees). Integer.MAX_VALUEis considered invalid value.
     */

  /**

     * Longitude is a decimal number asspecified in 3GPP2 C.S0005-A v6.0.
     * It is represented in units of 0.25seconds and ranges from -2592000
     * to 2592000, both values inclusive(corresponding to a range of -180
     * to +180 degrees).Integer.MAX_VALUE is considered invalid value.
     */

因此只要将getBaseStationLatitude()做如下处理即可:

double lat = (double)myCDMACellLoc.getBaseStationLatitude()  /14400;
double lon = (double)myCDMACellLoc.getBaseStationLongitude() /14400;

/14400即  *90/1296000

这样问题就解决了!!!

关键代码:

 

[c-sharp]  view plain copy
  1. telephonyManager =(TelephonyManager)getSystemService(TELEPHONY_SERVICE);  
  2. myCDMACellLoc = (CdmaCellLocation)telephonyManager.getCellLocation();  
  3. double lat = (double)myCDMACellLoc.getBaseStationLatitude()  /14400;  
  4. double lon = (double)myCDMACellLoc.getBaseStationLongitude() /14400;  
 

Android Google Map实例 - 不同的图标标注在同一图层(Android mapview)

Android Google Map实例 - 添加GPS位置标注(Android mapview)

这篇关于Android Google Map实例 - 获取cdma基站经纬度(Android mapview)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal