帮助使用GPS坐标,Android

时间:2011-03-21 22:16:05

标签: android gps coordinates

我正在使用此代码获取我的位置并在屏幕上打印坐标。   

package com.example.alpha;  

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.Toast;  

public class alpha extends Activity   
{  
    private LocationManager lm;  
    private LocationListener locationListener;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

        //---use the LocationManager class to obtain GPS locations---
        lm = (LocationManager) 
            getSystemService(Context.LOCATION_SERVICE);    

        locationListener = new MyLocationListener();

        lm.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 
            0, 
            0, 
            locationListener);   
    }

    public class MyLocationListener implements LocationListener 
    {
       public void onLocationChanged(Location loc) {


           double lat = loc.getLatitude();
           double lon = loc.getLongitude();
           Toast.makeText(getBaseContext(), "Location changed : alphaLat: " + lat + 
                   " alphaLng: " + lon, 
                   Toast.LENGTH_SHORT).show();

        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onStatusChanged(String provider, int status, 
            Bundle extras) {
            // TODO Auto-generated method stub
        }

    }        

}

问题是我想使用lat和lon值,以便通过流发送它们。关于如何获取onLocationChanged方法之外的坐标的任何建议?

1 个答案:

答案 0 :(得分:2)

不是将lat和lon声明为局部变量,而是将它们声明为Class级变量。这样您就可以在onLocationChanged方法之外访问这些值。

public class alpha extends Activity
{
         private LocationManager lm;
         private LocationListener locationListener;
         double lat;
         double lon;

  public class MyLocationListener implements LocationListener 
  {
   ...

   lat = loc.getLatitude();
   lon = loc.getLongitude();

   ........