实时获取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. html的3要素

    在HTML标记语言中可以将每个网页源码分成3部分: 1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" &q ...

  2. 编写高性能 Web 应用程序的 10 个技巧

    使用 ASP.NET 编写 Web 应用程序的简单程度令人不敢相信.正因为如此简单,所以很多开发人员就不会花时间来设计其应用程序的结构,以获得更好的性能了.在本文中,我将讲述 10 个用于编写高性能 ...

  3. 用JS写的无缝滚动特效

    代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...

  4. Spark Streaming揭秘 Day20 动态Batch size实现初探(上)

    Spark Streaming揭秘 Day20 动态Batch size实现初探(上) 今天开始,主要是通过对动态Batch size调整的论文的解析,来进一步了解SparkStreaming的处理机 ...

  5. The architecture of LTE network.

    3GPP定义的LTE网络架构结构变得扁平化,无线RNC/BSC 消失,只有eNodeB.控制面使用MME进行处理,用户面使用SGW和PGW进行处理.相比GSM和UMTS,在逻辑接口上定义了S1/X2逻 ...

  6. main函数的正确格式

    main函数称之为主函数,一个C程序总是从main()函数开始执行的.在关于C语言的网贴和图书中,可以看到main函数的多种格式,这些格式,有的是正确的,有的是不正确的,为了避免错误,现归纳整理如下. ...

  7. DataSet数据导出为Excel文档(每个DataTable为一个Sheet)

    Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部 ...

  8. [译] ASP.NET 生命周期 – ASP.NET 上下文对象(六)

    使用 HttpApplication 对象 ASP.NET 框架中的许多类都提供了许多很方便的属性可以直接映射到 HttpContext 类中定义的属性.这种交叠有一个很好的例子就是 HttpAppl ...

  9. WPF系列

    一.ListView绑定数据源XML //前端代码 1 <Window x:Class="ListView读取XML数据.MainWindow" xmlns="ht ...

  10. css tricks

    http://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ http://css-tricks.com/brows ...