`

GPS 学习

阅读更多
package com.sea.chapter8_1;

import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class GPSPractice extends Activity {

    private TextView mTextView;
    private LocationManager mLocationManager;
    private LocationProvider mLocationProvider;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gps1);

        mTextView = (TextView) findViewById(R.id.gps_textview);
        mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        // 返回所有的location提供者的名字的list ,一般有gps,network可以作位置提供者
        List<String> list = mLocationManager.getAllProviders();
        StringBuffer buffer = new StringBuffer("定位提供者:\n");
        for (String li : list) {
            buffer.append("                 " + li + "\n");
        }
        mTextView.setText(buffer.toString());
        // 根据指定的名字返回一个locationProvider 作为内容提供者,具体怎样获得还是由mLocationManager设置
        mLocationProvider = mLocationManager
                .getProvider(LocationManager.GPS_PROVIDER); // 由gps做location提供者

        // //由系统决定获取位置的方式:gps和网络
        // // 创建一个criteria对象
        // Criteria criteria = new Criteria();
        // // 设置经纬度的精准度,可选参数有ACCURACY_FINE准确或ACCURACY_COARSE粗略
        // criteria.setAccuracy(Criteria.ACCURACY_FINE);
        // // 设置是否需要获取海拔数据
        // criteria.setAltitudeRequired(false);
        // // 设置是否需要获得方向信息
        // criteria.setBearingRequired(false);
        // // 设置是否允许定位过程中产生资费,比如流量等
        // criteria.setCostAllowed(true);

        // // 设置耗电量的级别
        // criteria.setPowerRequirement(Criteria.POWER_LOW);
        // // 返回满足给定的criteria(标准)的最佳provider
        // String provider = locationManager.getBestProvider(criteria, true);

        // mLocationProvider =
        // mLocationManager.getProvider(LocationManager.NETWORK_PROVIDER);
        // //由网络做location提供者
        // mLocationProvider =
        // mLocationManager.getProvider(LocationManager.PASSIVE_PROVIDER);
        // //与其他应用一起使用,其他应用做location提供者

        update();

        LocationListener mLocationListener = new LocationListener() {
            @Override
            public void onStatusChanged(String provider, int status,
                    Bundle extras) {
            }

            @Override
            public void onProviderEnabled(String provider) {
            }

            @Override
            public void onProviderDisabled(String provider) {
            }

            @Override
            public void onLocationChanged(Location location) {
                update();
                Toast.makeText(getApplicationContext(), " 位置信息已更新……", 3000)
                        .show();
            }
        };

        // 设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,这样写主要为了方便)或最小位移变化超过N米
        mLocationManager.requestLocationUpdates(mLocationManager.GPS_PROVIDER,
                3 * 1000, 500, mLocationListener);
        Toast.makeText(getApplicationContext(), " ok", 3000).show();
    }

    protected void update() {
        // 这里还有一个类,判断最好的提供者

        // //上一次的位置信息
        // Location mLocation = new Location(mLocationProvider.getName()); //
        // 获取一个location对象// 接下来通过locationProvider获取location ,定位信息由location提供
        Location mLocation = mLocationManager
                .getLastKnownLocation(mLocationProvider.getName()); // 如果要不停地更新,需要使用这个方法,location由manager设置

        double altitude = mLocation.getAltitude(); // 定位信息的高度
        float bear = mLocation.getBearing(); // 获取定位信息的方向
        double latitude = mLocation.getLatitude(); // 获取定位信息的纬度信息
        double longitude = mLocation.getLongitude(); // 获取定位信息的经度信息
        String provider = mLocation.getProvider(); // 定位信息的提供者
        float speed = mLocation.getSpeed(); // 速度
        TextView show = (TextView) findViewById(R.id.gps_textview1);
        show.setText("高度:" + altitude + "\n方向:" + bear + "\n纬度:" + latitude
                + "\n经度:" + longitude + "\n提供者:" + provider + "\n速度:" + speed);
    }

}



 

分享到:
评论

相关推荐

    GPS学习教程及学习课件

    《GPS学习教程及学习课件》是一份全面深入讲解全球定位系统(GPS)技术的教程,涵盖了从基础知识到实际应用的各个层面。本教程旨在帮助读者理解并掌握GPS的工作原理、坐标系统、误差分析以及数据处理等核心概念。 ...

    J2me Gps学习例子

    下面我们将深入探讨J2ME中的GPS学习例子及其相关知识点。 首先,了解J2ME中的位置API是至关重要的。在J2ME中,我们通常使用Mobile Information Device Profile (MIDP) 和 Connected Limited Device Configuration ...

    GPS.rar_GPS

    ”虽然重复且略显随意,但可以理解为对内容质量的肯定,暗示了这份资料可能是高质量的GPS学习资源。 GPS,全称为全球定位系统(Global Positioning System),是一种基于卫星导航的全球定位系统,由美国开发并运营...

    android gps 学习

    在深入探讨Android GPS导航的学习与总结之前,我们首先需理解GPS(Global Positioning System)在全球定位系统中的核心作用。GPS是一种由美国政府运营的空间定位、导航和授时系统,通过一组卫星向地球上的接收器发送...

    The GPS Easy Suite–Matlab code for the GPS newcomer

    本资源是专为MATLAB初学者设计的GPS学习套件,旨在帮助用户快速理解和应用GNSS(全球导航卫星系统)定位的基本原理。 在MATLAB环境中,我们可以利用其强大的数值计算和图形化功能来模拟和解析GPS信号。这个“GPS-...

    GPS using arduino UNO

    using for arduino UNO board and PAM-7Q GPS Module

    GPS基础资料

    这些文档构成了一个全面的GPS学习资源,涵盖了从基本原理到实际应用的各个方面,对于理解移动定位技术和GPS系统有极大的帮助。无论是对GPS感兴趣的学生,还是从事相关工作的专业人士,都能从中受益匪浅。通过深入...

    行业教育软件-学习软件-软件下载_学习软件_电脑学习_EasyGPS免费下载.zip

    总之,EasyGPS是一款全面的GPS学习和应用工具,无论是在教育环境中还是个人学习中,都能提供宝贵的资源和功能。其免费下载的特性使得更多人能够接触并掌握GPS技术,为学术研究、职业发展乃至休闲娱乐带来便利。在...

    GPS 基线解算指导说明 (另外含GAMIT 指导 + Bernese使用说明)

    通过阅读"实用GPS测量数据处理教程.doc"、"GPS学习 .doc"和"GPS测量数据处理.pdf"等文档,以及实践操作Bernese软件,用户能够进一步掌握GPS基线解算的细节和技巧。无论你是初学者还是经验丰富的专业人士,这些资源都...

    GPS.rar_GPS_GPS 提取_GPS解析

    标题中的“GPS.rar_GPS_GPS ...对于学习和开发GPS相关的软件,这个程序将是一个有价值的资源,可以帮助理解如何将GPS数据转化为实用的信息。通过阅读和分析代码,可以深入理解GPS数据处理的各个环节,提高编程技能。

    GPS定位功能。GPS定位例子。

    标题中的“GPS定位功能”指的是全球定位系统(Global Positioning System)在移动设备上的应用,如智能手机。...通过学习和实践,我们可以创建更加智能化、用户友好的应用程序,进一步丰富我们的数字生活。

    GPS模拟卫星定位GPS

    4. **教学用途**:帮助学习者理解GPS定位原理,通过可视化界面观察卫星信号如何影响定位结果。 5. **离线定位**:在无网络或信号弱的情况下,依然可以进行定位测试。 标签“GPS”进一步强调了这个主题的重点,即...

    gps_goal-master_gps_goal_UsingGPS_

    通过研究这些内容,开发者可以学习如何将GPS数据有效地整合到ROS导航系统中。 总的来说,`gps_goal`是一个用于ROS系统的工具,它简化了基于GPS坐标设定导航目标的过程,这对于需要在广阔开放空间中导航的机器人系统...

    gps.rar_GPS 地图_GPS地图_车载GPS

    对于熟悉GPS技术、想了解车载导航系统或者进行相关项目开发的人来说,这是一个有价值的学习资源。同时,对于普通用户来说,这可能是一个实用的工具,尤其是那些常在南京及东南大学周边活动的人。

    gps.rar_GPS_GPS 相关_VB源码下载 GPS_vb gps

    标题中的“gps.rar”是一个RAR格式的压缩文件,通常用于打包...压缩包中的"VB gps卫星定位源码"文件,可能包含了上述所有或部分知识点的具体实现,学习和分析这个源码可以帮助深入理解如何在VB环境下开发GPS定位应用。

    GPS.rar_GPS_GPS硬件编程_GPS软件c#

    总的来说,这个压缩包是一个宝贵的教育资源,对于想要进入GPS领域或者提升GPS相关技能的人来说,提供了宝贵的学习材料。通过学习和实践其中的内容,不仅可以理解GPS系统的运作机制,还能掌握硬件编程和C#软件开发的...

    [269]一个GPS与串口通信的程序,很好的对gps信号信息解码,提取 并用VC信息上位机开发VC串口学习资料源码下转换.zip

    [269]一个GPS与串口通信的程序,很好的对gps信号信息解码,提取 并用VC信息上位机开发VC串口学习资料源码下转换.zip[269]一个GPS与串口通信的程序,很好的对gps信号信息解码,提取 并用VC信息上位机开发VC串口学习...

    The_GPS_Easy.zip_GPS_GPS代码_easy _卫星导航_卫星导航原理

    通过学习这份资料,你不仅可以理解GPS的工作原理,还能具备运用Matlab解决实际GPS定位问题的能力。这不仅有助于深化理论知识,也能锻炼编程和问题解决技能,对于未来在导航、测绘、通信等相关领域的职业发展具有极大...

    Android-Gps-Test.rar_GPS纬度_android_android gps test_androits gps

    此外,通过查看源码,我们可以学习如何在实际应用中实现更高效的GPS定位,比如使用被动定位模式来节省电量,或者优化GPS初始化和卫星搜索过程。 在Android平台上进行GPS测试时,一般会关注以下几个方面: 1. **定位...

Global site tag (gtag.js) - Google Analytics