我希望通过使用gps来获得经度和经度..我的代码是成功的,但它的工作太慢了。 如何获得localoint(纬度和经度)最小持续时间(20秒)?以及如何在30秒后停止定位服务或GPS?
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//Log.i("WHERE","ShowOnMapActivity onCreate()");
setContentView(R.layout.productlistmapview);
button_back = (Button)findViewById(R.id.btn_back_map);
button_back.setOnClickListener(this);
map_view = (MapView) findViewById(R.id.mapview_productlist);
LinearLayout zoom_layout = (LinearLayout)findViewById(R.id.zoom_map);
View zoomView = map_view.getZoomControls();
zoom_layout.addView(zoomView,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
map_view.displayZoomControls(true);
double str_latitude = XMLData.user_latitude;
double str_longitude =XMLData.user_logitude;
Log.i("str_latitude",str_latitude+"");
Log.i("str_longitude",str_longitude+"");
map_controller = map_view.getController();
;
double coordinates[] = {str_latitude, str_longitude};
double lat = coordinates[0];
double lng = coordinates[1];
geo_point = new GeoPoint((int) (lat * 1E6),(int) (lng * 1E6));
map_controller.animateTo(geo_point);
map_controller.setZoom(9);
MapOverlay map_overlay = new MapOverlay();
List<Overlay> list_of_overlays = map_view.getOverlays();
list_of_overlays.clear();
list_of_overlays.add(map_overlay);
map_view.invalidate();
}
public void onClick(View v)
{
switch(v.getId())
{
case R.id.btn_back_map:
Intent back_intent = new Intent(this,GroupPurchasingSelectProduct.class);
startActivity(back_intent);
break;
}
}
@Override
protected boolean isRouteDisplayed()
{
Log.i("WHERE","ShowOnMapActivity isRouteDisplayed()");
// TODO Auto-generated method stub
return false;
}
class MapOverlay extends com.google.android.maps.Overlay
{
@Override
public boolean draw(Canvas canvas, MapView mapView,
boolean shadow, long when)
{
super.draw(canvas, mapView, shadow);
Point screen_points = new Point();
mapView.getProjection().toPixels(geo_point, screen_points);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);
canvas.drawBitmap(bitmap, screen_points.x, screen_points.y-58, null);
return true;
}
}
}
答案 0 :(得分:0)
检查this post。这可以帮助您更好地了解如何使用位置。
要在 30秒之后停止该位置,您可以启动计时器并在此之后停止LocationService
,然后致电
locationManager.stopUpdates(LocationListener).