Я получаю данные GPS через DDMS, используя файл KML в Android, и я использую следующий код:
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.я хочу узнать адрес первой точки (широта, долгота) и последней точки, чьи данные GPS я получаю.
Мой вопрос: остается ли моя программа заблокированной на этой линии?:
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
до тех пор, пока не будут получены все данные GPS?
Таким образом, я могу применить Geocoder для geoPointsArray (0), а затем для geoPointsArray (maxSize).
Моя проблема в том, что я не знаю, как работает эта программа, поэтому я не могу точно определить, когда все мои данные GPS извлекаются (мой geoPointsArray заполнен), и поэтому, где применять Geocoder.
Вопрос2:
В тот момент, когда я начинаю получать обновления местоположения, я хочу подключиться к удаленному серверу и отправить на сервер все данные GPS, хранящиеся в geoPointArray.Любая идея о том, где я должен начать свою тему?У меня есть куча строк кода, но я думаю, что никто не собирается это читать!