找到路线的起点和终点的地址

时间:2011-04-29 12:09:12

标签: android location geocoding

我正在使用Android中的KML文件通过DDMS接收GPS数据,我正在使用以下代码:

public class screen4 extends MapActivity 

{    


List<GeoPoint> geoPointsArray = new ArrayList<GeoPoint>();

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.screen4); 

        lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);    

        locationListener = new MyLocationListener();


        mapView = (MapView) findViewById(R.id.mapview1);

        mapView.setBuiltInZoomControls(true);

        mc = mapView.getController();

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

   }


private class MyLocationListener implements LocationListener

    {

        @Override
        public void onLocationChanged(Location loc) {

            if (loc != null) {                         

                latitude=(int)(loc.getLatitude()* 1E6);

                longitude=(int)(loc.getLongitude()* 1E6);


           GeoPoint p = new GeoPoint(latitude,longitude);
        geoPointsArray.add(p);

      mc.animateTo(p);

              mc.setZoom(17);     

                mapView.invalidate();

                mapView.setSatellite(true);
           }

        }

在onLocationChanged()中,我检索GPS数据并将其存储在GeoPoint p中,我想要做的是找出第一个点(纬度,经度)的地址以及我检索到的GPS数据的最后一个点。

我的问题是:我的程序是否会在此行中被阻止:

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

直到检索到所有GPS数据?

通过这种方式,我可以为geoPointsArray(0)应用Geocoder,然后为geoPointsArray(maxSize)应用Geocoder。

我的问题是我不知道这个程序是如何工作的,所以我无法确定何时检索到所有GPS数据(我的geoPointsArray已满)以及应用Geocoder的位置。

问题2:

当我开始接收位置更新时,我想连接到远程服务器并将存储在geoPointArray中的所有GPS数据发送到服务器。知道我应该从哪里开始我的线程吗?我有一堆代码行,但我想没有人会阅读它!

1 个答案:

答案 0 :(得分:1)

  

我的问题是:我的程序是否在此行中被阻止:   lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,LocationListener的);   直到检索到所有GPS数据?

没有。位置更新是异步的。