android 百度获取经纬度,百度地图API获取经纬度的方法
我想很多人都有一个困惑(包括咱们的大版主叮当猫大哥),这个困惑就是不知道在百度地图中怎样获得经纬度。上次简单的跟叮当猫哥说了一下。今天就具体分析一下这个问题。
使用百度地图API来获取经纬度坐标。
首先是修改了一点的百度获取经纬度坐标的代码!
package Dagaishang.Android;[/size][/font][/align]
[font=Helvetica, Tahoma, Arial, sans-serif][size=3][align=left]import java.util.HashMap;[/align]
[align=left]import java.util.Map;[/align]
[align=left]import Dagaishang.Android.Utility.CmpDistance;[/align]
[align=left]import android.app.Activity;[/align]
[align=left]import android.content.Context;[/align]
[align=left]import android.os.Bundle;[/align]
[align=left]import android.widget.TextView;[/align]
[align=left]import android.location.Location;[/align]
[align=left]import com.baidu.mapapi.BMapManager;[/align]
[align=left]import com.baidu.mapapi.LocationListener;[/align]
[align=left]public class MyLocation extends Activity {[/align]
[align=left] // 自己的经纬度坐标[/align]
[align=left] private Double myPointX, myPointY;[/align]
[align=left] // 计算的两个经纬度之间的距离[/align]
[align=left] private Double Distance;[/align]
[align=left] LocationListener mLocationListener = null;// create时注册此listener,Destroy时需要Remove[/align]
[align=left] Map myMap = new HashMap();[/align]
[align=left] CmpDistance comDis = new CmpDistance();[/align]
[align=left] String FriendPx;[/align]
[align=left] String FriendPy;[/align]
[align=left] protected void onCreate(Bundle savedInstanceState) {[/align]
[align=left] super.onCreate(savedInstanceState);[/align]
[align=left] setContentView(R.layout.mylocation);[/align]
[align=left]// getLocationByBaidu("0", "0",this);[/align]
[align=left] }[/align]
[align=left] // FriendPx,FriendPy为好友的经纬度坐标,返回值为计算后的两个坐标的点的距离[/align]
[align=left] String getLocationByBaidu(String PointY, String PonitY,Activity tontext) {[/align]
[align=left] FriendPx = PointY;[/align]
[align=left] FriendPy = PonitY;[/align]
[align=left] BMapApiDemoApp app = (BMapApiDemoApp)tontext.getApplication();[/align]
[align=left] if (app.mBMapMan == null) {[/align]
[align=left] app.mBMapMan = new BMapManager(this.getApplication());[/align]
[align=left] app.mBMapMan.init(app.mStrKey,[/align]
[align=left] new BMapApiDemoApp.MyGeneralListener());[/align]
[align=left] }[/align]
[align=left] app.mBMapMan.start();[/align]
[align=left] // 注册定位事件[/align]
[align=left] mLocationListener = new LocationListener() {[/align]
[align=left] public void onLocationChanged(Location location) {[/align]
[align=left] if (location != null) {[/align]
[align=left] myPointX = location.getLongitude();[/align]
[align=left] myPointY = location.getLatitude();[/align]
[align=left] Distance = comDis.GetLongDistance(myPointX, myPointY,[/align]
[align=left] Double.valueOf(FriendPx), Double.valueOf(FriendPy));[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] };[/align]
[align=left] return String.valueOf(Distance);[/align]
[align=left] }[/align]
[align=left] protected void onPause() {[/align]
[align=left] BMapApiDemoApp app = (BMapApiDemoApp) this.getApplication();[/align]
[align=left] // 移除listener[/align]
[align=left] app.mBMapMan.getLocationManager().removeUpdates(mLocationListener);[/align]
[align=left] app.mBMapMan.stop();[/align]
[align=left] super.onPause();[/align]
[align=left] }[/align]
[align=left] protected void onResume() {[/align]
[align=left] BMapApiDemoApp app = (BMapApiDemoApp) this.getApplication();[/align]
[align=left] // 注册Listener[/align]
[align=left] app.mBMapMan.getLocationManager().requestLocationUpdates([/align]
[align=left] mLocationListener);[/align]
[align=left] app.mBMapMan.start();[/align]
[align=left] super.onResume();[/align]
[align=left] }[/align]
[align=left]}
大家明白,其中的getLocationByBaidu()就是我想要使用到的获取经纬度并计算两个点之间距离的方法了,但是其中 if (app.mBMapMan == null) 在其他地方调用的时候会报空指针错误。出现这个错误的原因是什么呢?
是不是因为传递过来的Activity不对或者说这里的getlocation()没有获取到东西?
经过跟朋友讨论我终于得出了解决方案。
由代码
if (location != null) {
知道它的调用时肯定不是空的,而
肯定是传的时候就是空的。
对于这个径纬度,我们可以分开做,
取得径纬度不做好,就不要进行下一步,
现只需将此两个变量值当成参数或是用结构体还是啥数据类型都一回事的。
写代码入下
Class VecLoc{[/size][/font][/align]
[font=Helvetica, Tahoma, Arial, sans-serif][size=3][align=left]double latitude =0;//经度[/align]
[align=left]double longitude =0;//纬度[/align]
[align=left]float accuracy =0;//精度[/align]
[align=left]double altitude =0;//海拔[/align]
[align=left]float bearing =0;//方向[/align]
[align=left]float speed =0;//速度[/align]
[align=left]}
关健是能把数据送过去,此处在不在activity里不重要,因为context可以传送。
另外还有一种方法,如果操作过多,你可以建立一个Handler消息通道,在任何地方都可以通过这样来与之通信,特别你有多个类会很实用。
代码入下:Bundle data = new Bundle();
String mTAG = "LocationMessage";
String str="{\"latitude\":123,\"longtitude\":321}";
data.putString(mTAG,str);
Message msg = new Message();
msg.setData(data);
mHandler.sendMessage(msg);
android 百度获取经纬度,百度地图API获取经纬度的方法相关推荐
- qichacha/知乎/国家统计局最新4级地区划/百度地图API获取经纬度/Google play app评论等分数据爬取
1.企查查数据抓取 1.1 关键公司LOGO # -*-coding:utf-8-*-import pandas as pd import requests import json import ra ...
- 调用百度地图API获取经纬度(详细步骤)
前端调用百度地图API获取经纬度(详细操作) 1. 浏览器搜索百度地图开放平台 2. 创建应用 点击控制台 --> 应用管理 --> 我的应用 --> 注册账号(如果没有注册过) - ...
- python获取某地铁站经纬度_python通过百度地图API获取某地址的经纬度详解
前言 这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的,本文将给大家详细的介绍关于python通过百度地图A ...
- Python3 | 通过百度地图API获取商家详细信息(包括店名,地址,经纬度,电话)
一.打开百度地图开放平台,选择Web服务API . 官方文档对API接口的调用描述的比较详细,在调用之前先要申请百度地图的账号,然后申请密钥,获取密钥的步骤官方也有说明. 二.通过百度地图 ...
- c语言api获取百度地图,H5调用百度地图API获取地理位置
//获取当前位置 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function(r){ alert ...
- 百度地图利用位置提供服务器,利用百度地图API获取当前位置信息的实例
利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: var map; var gpsPoint; var baiduPoint; ...
- HTML5页面调用百度地图API,获取当前位置并导航到目的地
微信也可用, <!DOCTYPE html> <html lang="zh-cmn-Hans"><meta charset="UTF-8&q ...
- html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...
vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...
- java获取经纬度_java调用高德地图api获取某个位置的经纬度
java调用高德地图api获取经纬度的方法,废话少说,直接上代码: import com.fasterxml.jackson.databind.JsonNode; import com.ning.ht ...
- 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度
调用腾讯地图API.高德地图API 获取当前地理位置.经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1.调用腾讯地图API ...
最新文章
- C# 判断远程文件是否存在
- 主板支持最大内存查看软件
- 图片尺寸对分类迭代次数和准确率的影响
- sqoop把mysql数据导入hbase-完整记录
- Netweaver和CloudFoundry是如何运行Web应用的?
- Web服务器常用设置
- u-boot工作流程
- chrome浏览器安装网页测试插件postman的图文步骤记录
- zebra的命令存储原理及使用方法
- php 富文本编辑器,曾经用过的十大富文本编辑器
- Windows Me光盘启动安装过程
- 12 个开源后台管理系统
- 共享计算机突然无法访问,共享的文件突然不能访问了电脑重启后又能访问为什么...
- U盘安装Fedora 24时出现的几个问题及解决办法
- 运动会分数统计——C语言数据结构题目
- 汇编语言基础入门知识
- 银河移民PHP面试,移民香港,我真的“后悔死了”
- Java/eclipse新建项目TR_52,编写程序,完成以下功能
- 安徽省c语言考试时间,安徽省年月二级C语言考试.doc
- 2016年度中国软件开发者白皮书正式发布(附全文下载)
热门文章
- 梁建章:预计半年后中国会有条件开放国际旅游
- 【Impala】基于Hive的快速大数据查询引擎——Impala知识点总结
- 择校秘籍|南大计算机 和 北航计算机 应该怎么选?
- JS函数传参是传值还是传引用
- 解决webpack-dev-server由于网络问题出现ETIMEDOUT
- Ubuntu 16.04LTS+NVIDIA@GT620M+CUDA6.5环境搭建总结
- 如何创建计算机的桌面快捷方式,什么是快捷方式、如何创建快捷方式?
- linux查看本机ip地址
- 科学计算机使用的软件,科学计算器软件有哪些?2020好用的科学计算器推荐
- Windows系统内置测试工具(winsat)