实时获取GPS定位数据

 import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.EditText; /*
* 实时获取GPS定位数据
*/
public class LocationActivity extends Activity
{
LocationManager mLocationManager;
EditText mEditText;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); mEditText = (EditText)findViewById(R.id.show); mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //从 GPS_PROVIDER 获取最后已知的定位信息
Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); //在editview中显示该信息
updateView(location); /*
* 请求更新 location
*/
//2000表示更新周期是2秒,8表示当新位置与当前位置超过8米时
//2000与8米是或的关系.其中一个满足时就触发LocationListener回调
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, , , new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) { }
@Override
public void onProviderEnabled(String provider) {
//当PorviderLocation可用时的回调
updateView(mLocationManager.getLastKnownLocation(provider));
} @Override
public void onProviderDisabled(String provider) {
} @Override
public void onLocationChanged(Location location) {
//当gps位置信息变化时的回调
updateView(location);
}
}); } //在 EditView 中显示位置信息
public void updateView(Location newLocation)
{
if(newLocation != null)
{
StringBuilder sb = new StringBuilder(); sb.append("实时的位置信息:\n"); sb.append("经度:" + newLocation.getLongitude() + "\n");
sb.append("纬度:" + newLocation.getLatitude() + "\n");
sb.append("高度:" + newLocation.getAltitude() + "\n");
sb.append("速度:" + newLocation.getSpeed() + "\n");
sb.append("方向:" + newLocation.getBearing() + "\n"); mEditText.setText(sb.toString());
}
}
}

求两个经纬点距离

 import android.app.Activity;
import android.location.Location;
import android.os.Bundle;
import android.widget.EditText; /*
* 求两个经纬点间距离
*/
public class DistanceActivity extends Activity {
private EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_distance); mEditText = (EditText) findViewById(R.id.edittext); // 1,准备一个存放计算结果的数组,长度为3,最终距离为数组第1个元素的值,
final float[] results = new float[]; // 2,用Location.distanceBetween静态方法计算,前两个参数为第一个点的经纬度,第3,4个参数是第2个点的经纬度,
Location.distanceBetween(20.123, 30.05644, 30.124, 40.543, results);
mEditText.setText(String.valueOf(results[]) + "米");
}
}

邻近某个区域圆时警告

 import mobile.android.proximity.alert.R;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle; /*
* 当进入目标区域时提示警告的示例
* 目标区域是指 以某个经纬点为原点,半径为x的一个圆.
*/
public class ProximityAlertActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //进入目标区域提示警告 第1步,得到LocationManager
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //进入目标区域提示警告 第2步,准备目标区域
double longitude = 123.427109;
double latitude = 41.764998;
float radius = ;//半径 //进入目标区域提示警告 第3步,广播接收器的intent.PromimityAlertRecivery是个接收器.
Intent intent = new Intent(this, PromimityAlertRecivery.class); //进入目标区域提示警告 第4步,将广播接收器与PendingIntent绑定.
//PendingIntent 比intent生命周期长,应用关闭后,它仍然存在.除非卸载或关机.
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,,intent,); //进入目标区域提示警告 第5步,添加一个进入警告到LocationManager,其中-1这个参数是过期周期,-1表示永远
locationManager.addProximityAlert(latitude, longitude, radius, -, pendingIntent);
}
}

接收器的代码

 import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.widget.Toast; /*
* 注意这是个广播接收器,还是主动请求的数据的
*/
public class PromimityAlertRecivery { public void onReceive(Context context, Intent intent) {
//是否进入目标区域,true是进入,false是离开
boolean isEnter = intent.getBooleanExtra(
LocationManager.KEY_PROXIMITY_ENTERING, false); if (isEnter) {
Toast.makeText(context, "已经进入目标区域", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "已经离开目标区域", Toast.LENGTH_LONG).show();
} }
}

GPS(2)关于位置的3个示例,实时获取GPS定位数据,求两个经纬点距离,邻近某个区域圆时警告的更多相关文章

  1. 在Android Studio中使用BaiduMap SDK实时获取当地位置信息

    配置BaiduMap 环境 1.在百度API中新建自己的一个APP包名和APP名需要注意和自己Android Studio 中的包名和APP名保持一致: 2.百度地图中还需要填写一个SHA1 数字签名 ...

  2. 分布式 PostgreSQL 集群(Citus)官方示例 - 实时仪表盘

    Citus 提供对大型数据集的实时查询.我们在 Citus 常见的一项工作负载涉及为事件数据的实时仪表板提供支持. 例如,您可以是帮助其他企业监控其 HTTP 流量的云服务提供商.每次您的一个客户端收 ...

  3. qt qml ajax 获取 json 天气数据示例

    依赖ajax.js类库,以下代码很简单的实现了获取天气json数据并展示的任务 [TestAjax.qml] import QtQuick 2.0 import "ajax.js" ...

  4. Intersecting Lines---poj1269(求两直线的位置关系)

    题目链接:http://poj.org/problem?id=1269 题意:给你两条直线上的任意不同的两点,然后求两条直线的位置关系,如果相交于一点输出该点坐标; #include<iostr ...

  5. html获取gps坐标

    <script> function getLocation(){ var options={ enableHighAccuracy:true, maximumAge:1000 } if(n ...

  6. 最简单的基于DirectShow的示例:获取Filter信息

    ===================================================== 最简单的基于DirectShow的示例文章列表: 最简单的基于DirectShow的示例:视 ...

  7. android 获取GPS定位

    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  8. div内鼠标坐标位置及绝对和相对坐标获取

    JQuery 获得div绝对,相对位置的坐标方法   1 2 3 4 5 6 获取页面某一元素的绝对X,Y坐标 var X = $('#DivID').offset().top; var Y = $( ...

  9. 测试百度地图输入GPS经纬度显示位置API

    1.我的GPS获取的经纬度做度分秒转换后为 34.636055,112.40832 2.百度API介绍 GPS的坐标是WGS84,所以测试API http://api.map.baidu.com/ge ...

随机推荐

  1. 解决EnableVisualStyles Bug

    一位朋友碰到了一个WinForm的问题,在网上搜了一通,没找到能解决问题的方案, 正好我以前以碰到过,在这里把解决方案呈上,以便有遇到此问题的朋友能有帮助. 问题是这样的,当启用了虚拟样式后,设置好的 ...

  2. OWIN and Katana - 1

    翻译自 http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana 十多年来,基于ASP.NET框 ...

  3. linux 神器之wget

    1.什么是Wget? 首页,它是网络命令中最基本的.最好用的命令之一; 文字接口网页浏览器的好工具. 它(GNU Wget)是一个非交互从网上下载的自由工具(功能).它支持http.ftp.https ...

  4. MongoDB之【增加用户认证、增加用户、删除用户、修改用户密码、读写权限、只读权限】

    说明:增加用户是针对数据库进行操作 1.进入到数据库 use dbname 2.针对当前数据库添加用户 权限是针对当前数据 1.添加并验证用户 > use admin > db.addUs ...

  5. [译]servlet3.0与non-blocking服务端推送技术

    Non-blocking(NIO)Server Push and Servlet 3 在我的前一篇文章写道如何期待成熟的使用node.js.假定有一个框架,基于该框架,开发者只需要定义协议及相关的ha ...

  6. 在centos 6.4下安装opencv 2.3.1

    系统环境介绍: centos 6.4 1.安装依赖包 yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp ...

  7. 【转】How to view word document in WPF application

    How to view word document in WPF application (CSVSTOViewWordInWPF) Introduction The Sample demonstra ...

  8. 一、mysql使用入门

    mysql -h localhost -u root -p123456 登录mysql服务器 show databases 列出所拥有的数据库 use www 选择一个www的数据库 show tab ...

  9. fineui框架

    http://fineui.com/demo/#/demo/layout/fit.aspx 虽然比较丑陋,但功能实用 此框架比较简单, 框架的作用你懂的,重点是要有帮助文档, 进阶型的容易上手的帮助文 ...

  10. Jquery实现自动提示下拉框

    1.引入脚本库:     <script type="text/javascript" src="/Jscripts/jquery-1.3.2.js"&g ...