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

相关文章

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

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影