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

Android GPS 获得 经纬度 并得到该 坐标 精确地址

 
阅读更多
package cn.xx.currentlocation;

import java.io.IOException;
import java.util.List;
import java.util.Locale;

import android.app.Activity;
import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class CurrentLocation extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                LocationManager locationManager;
                String serviceName = Context.LOCATION_SERVICE;
                locationManager = (LocationManager) getSystemService(serviceName);
//                String provider = LocationManager.GPS_PROVIDER;
//                String provider = "gps";

                Criteria criteria = new Criteria();
                criteria.setAccuracy(Criteria.ACCURACY_FINE);
                criteria.setAltitudeRequired(false); 
                criteria.setBearingRequired(false);
                criteria.setCostAllowed(true);
                criteria.setPowerRequirement(Criteria.POWER_LOW);
                String provider = locationManager.getBestProvider(criteria, true);

                Location location = locationManager.getLastKnownLocation(provider);
                updateWithNewLocation(location);
                locationManager.requestLocationUpdates(provider, 2000, 10, locationListener);

        }

        private final LocationListener locationListener = new LocationListener() {
                public void onLocationChanged(Location location) {
                        updateWithNewLocation(location);
                }

                public void onProviderDisabled(String provider) {
                        updateWithNewLocation(null);
                }

                public void onProviderEnabled(String provider) {
                }

                public void onStatusChanged(String provider, int status, Bundle extras) {
                }
        };

        private void updateWithNewLocation(Location location) {
                String latLongString;
                TextView myLocationText;
                myLocationText = (TextView) findViewById(R.id.myLocationText);
//                try {
//                        Thread.sleep(0);//因为真机获取gps数据需要一定的时间,为了保证获取到,采取系统休眠的延迟方法
//                } catch (InterruptedException e) {
//                        e.printStackTrace();
//                        throw new RuntimeException(e);
//                }
                if (location != null) {
                        double lat = location.getLatitude();
                        double lng = location.getLongitude();
                        
                        Geocoder geocoder=new Geocoder(this); 
//                        Geocoder geocoder = new Geocoder(this, Locale.CHINA);
                        List places = null;
                        
                        try {
//                                Thread.sleep(2000);
                                places = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 5);
//                                Thread.sleep(2000);
                                Toast.makeText(CurrentLocation.this, places.size()+"", Toast.LENGTH_LONG).show();
                                System.out.println(places.size()+""); 
                        } catch (Exception e) {  
                                e.printStackTrace();
                        }
                        
                        String placename = "";
                        if (places != null && places.size() > 0) {
                                // placename=((Address)places.get(0)).getLocality();
                                //一下的信息将会具体到某条街
                                //其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街
                                placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")
                                                + ((Address) places.get(0)).getAddressLine(1) + ", "
                                                + ((Address) places.get(0)).getAddressLine(2);
                        }

                        latLongString = "纬度:" + lat + "/n经度:" + lng;
                        Toast.makeText(CurrentLocation.this, placename, Toast.LENGTH_LONG).show();
                } else {
                        latLongString = "无法获取地理信息";
                }
                myLocationText.setText("您当前的位置是:/n" + latLongString);
        }

}

 

又有其他项目,还没着手这个GPS功能,没来得及试
分享到:
评论

相关推荐

    android获取GPS经纬度,并根据经纬度获取准确地址( 纯原生)

    总结来说,获取Android设备的GPS经纬度并转换为地址,需要利用Location服务获取定位信息,然后通过Geocoding API或`Geocoder`将坐标解析为可读的地址。在实际应用中,还需要考虑位置权限的获取、GPS状态的检查以及...

    android获取GPS经纬度,并根据经纬度获取准确地址 _andoid 原生开发定位无法获取经纬度,

    在Android原生开发中,获取GPS经纬度以及根据...通过以上步骤,我们可以实现Android原生开发中获取GPS经纬度并转换为准确地址的功能。在实际应用中,可能还需要考虑网络状况、定位精度、耗电等因素,进行相应的优化。

    android gps定位获取经纬度

    本篇将详细介绍如何在Android中获取经纬度坐标。 一、Android权限设置 在AndroidManifest.xml文件中,必须声明使用GPS的权限,这是获取位置信息的前提。添加以下代码: ```xml <uses-permission android:name=...

    Android应用实现GPS定位返回经纬度Demo

    在Android平台上,开发一款应用以实现GPS定位并获取经纬度值是常见的需求。这个"Android应用实现GPS定位返回经纬度Demo"就是一个实例,它演示了如何有效地从Android系统的Location服务中获取地理位置信息。下面我们...

    获取路径android gps经纬度

    总之,获取Android设备上的GPS经纬度并计算两点距离是移动应用开发中的基本技能,涉及到LocationManager服务的使用、位置监听器的注册以及地理坐标间的距离计算。通过理解这些知识点,开发者可以创建出能够提供精确...

    Android 根据经纬度获取地址

    在Android开发中,有时我们需要根据用户的GPS坐标(经度和纬度)获取具体的地理位置信息,如地址、名称、电话和邮编等。这通常涉及到地理编码(Geocoding)的过程,即通过地理位置坐标反向查询到人类可读的地址信息...

    Android中GPS定位(获取经纬度)

    在Android开发中,GPS定位是实现地理定位服务的关键部分,用于获取设备的精确地理位置信息,如经度和纬度。以下是一份详细的关于如何在Android中实现GPS...通过上述步骤,开发者可以实现获取并显示设备的经纬度坐标。

    Android获取当前地理位置经纬度坐标

    在Android应用开发中,获取设备的当前地理位置经纬度坐标是一项常见的功能,这通常涉及到位置服务、GPS、网络定位等技术。下面将详细讲解如何在Android Studio项目中实现这一功能。 首先,我们需要添加必要的权限到...

    Android GPS转百度坐标demo.zip

    本篇将详细探讨"Android GPS转百度坐标"的相关知识点,以及如何在Android应用中实现这个功能。 首先,我们要了解GPS坐标和百度坐标体系的基础知识。GPS坐标通常指的是WGS84坐标系统,这是全球通用的地理坐标系统,...

    Android 获取当前经纬度

    GPS是获取精确经纬度的首选方式,它通过接收卫星信号来计算设备的位置。在Android中,我们可以使用`LocationManager`和`LocationListener`来获取GPS坐标。首先,你需要在AndroidManifest.xml中添加访问GPS的权限: ...

    手机原生GPS定位 循环定位 获取的经纬度写入sqlite数据库

    在Android平台上,开发一款应用程序以实现手机原生GPS定位功能并循环获取经纬度坐标,将这些数据存储到SQLite数据库中,是一项常见的需求。这个过程涉及到了Android系统服务、位置API、时间戳处理以及本地数据库操作...

    安卓调用GPS获取经纬度源码

    本篇文章将通过一个具体的示例代码来详细解析如何在Android系统中实现GPS定位功能,从而获取用户的经纬度坐标。 #### 二、关键知识点 ##### 1. 权限声明 在使用Android系统的GPS功能之前,首先需要在应用的`...

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    1. **GPS(全球定位系统)**:GPS是最精确的定位方式,通过接收卫星信号计算出设备的位置。在户外且无遮挡的情况下,可以提供几米以内的精度。Android中使用`LocationManager`服务和`GpsLocationProvider`来获取GPS...

    AndroidGPS定位,获取经纬度位置

    本教程将深入探讨如何在Android应用程序中使用GPS获取经纬度坐标,并将其显示在TextView中。以下是一系列详细步骤和相关知识点: 1. **AndroidManifest.xml配置**: 在Android应用中使用GPS服务,必须在`...

    Android火星坐标转换

    在Android系统中,由于国家安全和隐私考虑,GPS获取到的原始坐标数据并非直接采用全球通用的WGS84坐标系,而是使用了被称为“火星坐标”或“GCJ-02”的加密坐标系。这种坐标转换是必要的,因为它使得位置信息在传输...

    android经纬度的获取

    在Android系统中,获取设备的经纬度位置是常见的需求,主要通过GPS(全球定位系统)、网络定位服务(如Wi-Fi和移动网络)以及离线地图数据来实现。本篇文章将详细探讨这三种方式以及如何在Android应用中实现它们。 ...

    使用GPS获取经纬度

    在IT行业中,GPS(全球定位系统)是一种广泛应用于地理定位的技术,它允许设备获取精确的经纬度坐标。这篇博文“使用GPS获取经纬度”显然探讨了如何在编程中利用GPS功能来实现这一目标。通常,这涉及到使用特定的API...

    Android中GPS定位获取坐标信息

    在`onLocationChanged`方法中,我们可以获取到`Location`对象,它包含了经纬度坐标以及其他相关信息: ```java @Override public void onLocationChanged(Location location) { double latitude = location....

    模拟gps经纬度数据(带全国).rar

    在IT行业中,GPS(全球定位系统,Global Positioning System)是一项至关重要的技术,它通过接收卫星信号来确定地球上任何位置的精确经纬度坐标。在软件开发、地理信息系统(GIS)、移动应用等领域,模拟GPS经纬度...

    androidGPS及WIFI基站定位坐标源码.zip

    这份“androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了一些实现这两种定位方式的源代码,对于学习Android定位机制非常有帮助。接下来,我们将深入探讨这两种定位方法及其在源码中的实现细节。 1. GPS定位: ...

Global site tag (gtag.js) - Google Analytics