`
squll369
  • 浏览: 108519 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

安卓定位开发

阅读更多

最近做一个小项目,遇到需要计算当前位置到目标位置的距离,由于项目很小,没有接入百度地图,高德地图,所以要自己写一段代码,现记录如下:

 

package com.xxxx.xxxx.xxxx.util;

import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;

import java.math.BigDecimal;


public class LocationUtil {

    private static final String TAG = "LocationUtil";

    private static LocationListener locationListener = new LocationListener(){
        @Override
        public void onLocationChanged(Location location) {
            Log.d(TAG, "坐标位置变动了");
            if (location != null) {
                Log.e("Map", "Location changed : Lat: "
                        + location.getLatitude() + " Lng: "
                        + location.getLongitude());
            }
        }

        @Override
        public void onStatusChanged(String s, int i, Bundle bundle) {
            Log.d(TAG, "Provider的状态切换了");
        }

        @Override
        public void onProviderEnabled(String s) {
            Log.d(TAG, "Provider启动了");
        }

        @Override
        public void onProviderDisabled(String s) {
            Log.d(TAG, "Provider关闭了");
        }
    };


    public static String getDistanceWithkilometre(Location currentLoaction, Location huisuoLocation){
        if(currentLoaction!=null && huisuoLocation!=null){
            float distance = huisuoLocation.distanceTo(currentLoaction);
            float kmdistance = distance / 1000;
            BigDecimal b = new BigDecimal(kmdistance);
            kmdistance = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
            return kmdistance + "公里";
        }else{
            return "无法定位";
        }
    }

    public static Location getCurrentLocation(Context context){
        Location location = null;

        LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);

        if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(location == null){
                location = getCurrentLocationWithWifi(locationManager);
            }
        }else{
            location = getCurrentLocationWithWifi(locationManager);
        }

        return location;
    }

    private static Location getCurrentLocationWithWifi(LocationManager locationManager){
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);
        return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    }

 getCurrentLocation 用来获取当前的坐标,先用GPS,获取不到的话,用wifi.

 getDistanceWithkilometre 用来获取与目标坐标之间的公里数。

 

 

 

分享到:
评论

相关推荐

    delphi xe7android gps定位demo使用百度地图

    在开发Android应用时,有时我们需要实现GPS定位功能,Delphi XE7作为一个强大的跨平台开发工具,可以帮助我们轻松实现这一需求。本示例是关于如何在Delphi XE7环境下,利用百度地图API来实现Android设备上的GPS定位...

    Android开发之百度地图定位打卡

    在Android开发中,集成百度地图并实现定位打卡功能是一项常见的需求。这涉及到多个技术点,包括Android SDK的使用、百度地图API的集成、位置服务的开启与管理、地图的显示与交互、以及自定义打卡逻辑等。下面我们将...

    高德 开发 Android 定位SDK 开发指南 获取位置 获取定位数据

    本开发指南将深入探讨如何使用高德Android定位SDK来获取定位数据,包括初始化设置、请求定位、处理定位结果以及优化定位体验。 首先,我们要了解高德Android定位SDK的基础。它是一个集成在Android应用中的库,提供...

    安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip

    这个压缩包“安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip”提供了一个实践示例,展示了如何在Android平台上实现基于GPS和WIFI的定位功能。下面将详细讲解这两个定位技术及其在源码中的应用。 1. GPS...

    基于百度地图api开发的安卓定位软件,秒定位精准

    **安卓开发**涉及到的知识点广泛,包括Java或Kotlin编程语言、安卓SDK、Android Studio集成开发环境等。在创建一个安卓应用时,我们需要定义Activity(应用界面)、布局文件(XML描述界面元素)、服务(后台运行任务...

    Android GPS和基站定位 Android studio开发

    在Android开发中,GPS(全球定位系统)和基站定位是两种常见的定位技术,它们用于获取设备的地理位置信息。本文将详细讲解这两种定位方式,并结合Android Studio的开发实践,阐述如何在实际应用中实现它们。 首先,...

    Android开发安卓大作业人脸识别签到系统源码.zip

    Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到系统源码Android开发安卓大作业人脸识别签到...

    android开发之百度地图定位

    在Android开发中,集成百度地图并实现定位功能是一项常见的任务,尤其对于开发地理位置相关的应用来说至关重要。本篇文章将深入探讨如何在Android应用中利用百度地图API进行定位。 首先,我们需要在百度地图开放...

    Android 定位权限申请

    以下是关于Android定位权限申请的详细知识: 1. **运行时权限**: - 在Android 6.0及以上版本,用户可以在应用运行时决定是否授予某些敏感权限,如访问位置、联系人、相机等,而不是在安装时全部授权。 - 这种...

    安卓开发英文参考文献(精选120个最新).pdf

    3. **多功能地图软件设计**:文献[3]阐述了基于安卓平台的多功能地图软件的开发,该软件集成了定位、导航等多种功能,揭示了安卓系统在地理信息处理上的灵活性。 4. **自动化测试环境研究**:文献[4]探讨了基于安卓...

    Android 定位系统(GPS)开发详解

    Android支持地理定位服务的API。该地理定位服务可以用来获取当前设备的地理位置,应用程序可以定时请求更新设备当前的地理位置信息。比如应用程序可以借助一个Intent接收器来实现如下功能: 以经纬度和半径规划一个...

    Android地图定位googleSDK使用

    在Android开发中,集成Google Maps SDK和Google Location SDK是实现地图展示、定位功能的重要环节。本文将详细讲解如何使用这两个SDK来实现相应的功能,并提供一些关键知识点。 首先,我们需要在项目中添加Google ...

    Android开发之高德地图实现定位

    在Android开发中,集成地图功能是一项常见的需求,而高德地图作为国内主流的地图服务提供商之一,提供了丰富的API供开发者使用。本文将详细讲解如何在Android应用中实现高德地图的定位功能。 首先,要使用高德地图...

    安卓定位demo

    在安卓开发中,实现位置服务是一项重要的功能,它允许应用获取用户的实时地理位置信息,从而提供各种基于位置的服务,如导航、周边查询等。本“安卓定位demo”是针对这一需求而设计的一个简单示例,它利用了百度地图...

    android应用开发范例精解

    《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发...第3篇为项目案例实战篇,详细介绍了Android地图定位搜索应用及乐乐网上购物商城两个案例的实现过程。

    毕业答辩-基于安卓百度地图的定位开发.doc

    本文主要介绍基于安卓平台的百度地图定位开发,讨论了手机导航的重要性、百度地图的优势、Android 平台的开放性和兼容性,以及百度地图在手机导航定位服务中的应用。 首先,本文指出手机导航已经成为现代社会中不可...

    Android原生定位的方法(GPS,网络定位)源码

    Android开发之原生定位的方法(GPS,网络定位)更多查看我的博客:https://blog.csdn.net/xiayiye5/article/details/83686286

Global site tag (gtag.js) - Google Analytics