我正在使用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数据发送到服务器。知道我应该从哪里开始我的线程吗?我有一堆代码行,但我想没有人会阅读它!
答案 0 :(得分:1)
我的问题是:我的程序是否在此行中被阻止: lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,LocationListener的); 直到检索到所有GPS数据?
没有。位置更新是异步的。