GPS基础
public class MainActivity extends Activity {
private LocationManager manager;
private List<String> providers;// 可以用GPS还是网络来定位
private Location location;// 我们所在的位置
private String provider;// 用哪种方式定位
private LocationListener listener;// 位置改变的监听
private BaiduMap baiduMap;// 百度地图控制器
private MapView mapview;// 地图容器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 初始化地图
SDKInitializer.initialize(getApplicationContext());// 初始化<meta-data>
setContentView(R.layout.map_main);
mapview = (MapView) findViewById(R.id.mapview);
baiduMap = mapview.getMap();
baiduMap.setMyLocationEnabled(true);// 显示地图上的那个点
// 位置服务
manager = (LocationManager) getSystemService(LOCATION_SERVICE);
providers = manager.getProviders(true);// 得到此设备上可用的定位(GPS.NETWORK)
if (providers.contains(LocationManager.GPS_PROVIDER)) {
provider = LocationManager.GPS_PROVIDER;
} else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
provider = LocationManager.NETWORK_PROVIDER;
} else {// 网络和GPS没有打开
Toast.makeText(this, "找不到可用的网络或者GPS", Toast.LENGTH_SHORT).show();
}
// location = manager.getLastKnownLocation(provider);// 上面找到的可用的定位方式
location = manager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
showLocation(location);
}
listener = new MyLocationListener();
// 位置在改变的时候,信息也得跟着改变,注册
manager.requestLocationUpdates(provider, 2000, 3, listener);// 哪个定位方式,多长时间定位一次,最少移动多远(米),具体定位的代码
// Log.i("经度:", ""+location.getLatitude());
// Log.i("纬度:", ""+location.getLongitude());
// for(String p: provider){
// //LocationManager.GPS_PROVIDER
// //LocationManager.NETWORK_PROVIDER
//
// Log.i("哪些可用的方式定位", p);
// }
}
// 定位监听
class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location location) {// 当位置改变了调用
showLocation(location);
}
@Override
public void onProviderDisabled(String provider) {// 定位功能关闭了
}
@Override
public void onProviderEnabled(String provider) {// 定位功能能用了
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {// 定位方式改变了
}
}
public void showLocation(Location location) {// 写一个定位的方法,找到上面设置好的位置信息
// Log.i("经度:", "" + location.getLatitude());
// Log.i("纬度:", "" + location.getLongitude());
double latitude = location.getLatitude();
double longitude = location.getLatitude();
// 将定位的经度纬度给百度API的LATLNG类
LatLng ll = new LatLng(latitude, longitude);
// 定位地图的改变
MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
baiduMap.animateMapStatus(update);
update = MapStatusUpdateFactory.zoomTo(17f);// 3-19,数字越大,距离最小
baiduMap.animateMapStatus(update);
// AlertDialog.Builder builder = new
// AlertDialog.Builder(this).setTitle("ddd").setMessage("ddd");
// builder.create();
MyLocationData.Builder builder = new MyLocationData.Builder().latitude(
latitude).longitude(longitude);// 构造一个MyLocationData.Builder对象
// 构造 MyLocationData对象
MyLocationData data = builder.build();
// 把我的位置标注在地图上
baiduMap.setMyLocationData(data);
}
// 暂停的时候
@Override
protected void onPause() {
super.onPause();
mapview.onPause();
}
// 持续运行的时候
@Override
protected void onResume() {
super.onResume();
mapview.onResume();
}
// 退出的时候
@Override
protected void onDestroy() {
super.onDestroy();
baiduMap.setMyLocationEnabled(false);
mapview.onDestroy();
if (manager != null) {
manager.removeUpdates(listener);
}
}
}
GPS基础的更多相关文章
- GPS基础知识
GPS基础知识 冷启动 冷启动是指模块内部没有任何参的星历或历书的情况下,模块的首次启动,一般而言,由于模块内部没有星历参数,这个时候接收卫星信号开始,就要在天线接收的范围内不停的寻找并下载星历,它的 ...
- STM32F429I-DISCO 和GPS的亲热接触
第27章 GPS LCD显示教程 本期教程为大家解说GPS Global Positioning System(全球定位系统)的使用,.GPS是由美国国防部研制建立的一种具有全方位.全天候.全时段.高 ...
- 关于GPS偏移的基础知识
转载地址 我们平时用到的地球坐标系统,叫做WGS84坐标,国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照几行代码的算法,将真实的坐标加密成虚假的坐标, ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- 趣味GPS
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 简介 GPS的全称是全球定位系统(the Global Positioning S ...
- GPS各种地图坐标系转换(转载)
http://my.oschina.net/fankun2013/blog/338100 地图供应商比较多,产生了许多地图坐标.地图坐标正确转换是个问题.在之前开发地图应用的时候发现从WGS84坐标系 ...
- IOS开发基础知识--碎片20
1:view中的clipsTobounds属性 iew2添加view1到中,如果view2大于view1,或者view2的坐标不全在view1的范围内,view2是盖着view1的,意思就是超出的部份 ...
- 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台
开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...
- 基于Java Netty框架构建高性能的部标808协议的GPS服务器
使用Java语言开发一个高质量和高性能的jt808 协议的GPS通信服务器,并不是一件简单容易的事情,开发出来一段程序和能够承受数十万台车载接入是两码事,除去开发部标808协议的固有复杂性和几个月长周 ...
随机推荐
- URAL 1936 Roshambo 题解
http://acm.timus.ru/problem.aspx?space=1&num=1936 F - Roshambo Time Limit:1000MS Memory Limit:65 ...
- 基于jquery的相册预览gallery
众多有图片的产品,都要加个图片预览功能.然后市面上就出现了各种各样的相册,下面也提供一个基于jquery的相册. 源码:https://github.com/lilyH/gallery 版本: v0. ...
- vmware, failed to lock the file
电脑死机,进不了桌面,实在不行就重启,但是在运行着虚拟机,重启后打开VMware虚拟机,提示failed to lock the file,进不去了,急阿,里面不少资料呢...问万能的Google,终 ...
- Entity Framework 关系约束配置
前言 简单的说一下自己的理解,大家应该都很明白ADO.NET,也就是原生态的数据库操作,直接通过拼接SQL语句,表与表之间通过链接(inner join left join 或者子查询),也就是在 ...
- 从客户端中检测到有潜在危险的 Request.Form 值。
使用富文本编辑器是经常会遇到这个问题,在MVC中解决方法很简单只要在对应的action上添加[ValidateInput(false)]即可
- MySQL数据库InnoDB引擎下服务器断电数据恢复
说明: 线上的一台MySQL数据库服务器突然断电,造成系统故障无法启动,重新安装系统后,找到之前的MySQL数据库文件夹. 问题: 通过复制文件的方式对之前的MySQL数据库进行恢复,发现在程序调用时 ...
- php用soap创建webservice
php提供了一个专门用于soap操作的扩展库,使用该扩展库后 可以直接在php中进行soap操作.下面将介绍soap的基本操作. 一.soap扩展的使用方法 php的soap扩展库通过soap协议实现 ...
- 隐藏Nginx/Apache版本号的安全性与方法
一.先介绍nginx隐藏版本号的方法. 搭建好nginx或者apache,为了安全起见我们都会隐藏他们的版本号,这边讲的是nginx的版本号,如果你也想隐藏apache的版本号,那请点前面的链接.请看 ...
- Windows环境下的jekyll本地搭建
一.配置ruby环境 由于jekyll是用ruby语言写的一个静态网页生成工具,所以要搭建jekyll本地环境就需要先配置好ruby环境. 1)去官网下载Ruby:https://www.ruby-l ...
- 【云计算】mesos生态系统
以 Apache Mesos 计算的开源数据中心 数据中心 易云 · 2015-09-15 16:53 Apache Mesos 是一个管理器,它通过分布式的应用或框架提供了一种高效的资源隔离和共享. ...