У меня есть примерный код для моего проекта, и я пытаюсь получить GPS-местоположение пользователя при нажатии кнопки, и я хочу, чтобы это место было GeoPoint, которое затем можно передать методу.Как получить местоположение GPS на кнопку?
Метод предназначен для класса Overlay, который рисует наложение этой точки. Я использовал какой-то код из Stack Overflow question How can I obtain the current GPS location?. У меня есть программа, настроенная так, что GeoPoint добавляется в массив, а затем возвращается из этого массива и добавляется в этот метод. Есть ли лучший способ сделать это или есть ли способ использовать точку, не помещая ее в массив?
Это кнопка, где добавляется оверлей и GeoPoint получается из массива:
Button startBtn = (Button) findViewById(R.id.startBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
getLocation();
tempOverlay = (MapOverlay) listOfOverlays.get(arrayNumber);
tempOverlay.addPoint(points.get(pointCount));
mapView.postInvalidate();
}
}
});
Это метод getLocation(), который создает locationManager и requestUpdates.
public void getLocation()
{
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
System.out.println("Get Location Called");
}
Это onLocationChanged
метод внутри MyLocationListener
класса, который получает обновления и как только у меня есть место, я останавливаю запрос на обновление.
@Override
public void onLocationChanged(Location loc)
{
if(loc != null)
{
Toast.makeText(getBaseContext(),"LocationChanged : Lat: " + loc.getLatitude()+ " Lng: " + loc.getLongitude(),
Toast.LENGTH_SHORT).show();
}
p = new GeoPoint((int) (loc.getLatitude() * 1E6),(int) (loc.getLongitude() * 1E6));
points.add(p);
System.out.println("Point Added to Array");
LBServicesActivity.this.lm.removeUpdates(this);
mc.animateTo(p);
mc.setZoom(18);
}
Как передать этот GeoPoint методу в buttonListener без добавления его в массив?
Привет жаль, что я принял так долго отвечать. Спасибо за идею, которую я пробовал, и она работает очень хорошо. Еще раз спасибо. –