获取当前位置的纬度和经度的问题

时间:2011-06-27 07:38:42

标签: android android-service android-maps android-location

我希望通过使用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;
        }
    } 

}

1 个答案:

答案 0 :(得分:0)

检查this post。这可以帮助您更好地了解如何使用位置。

要在 30秒之后停止该位置,您可以启动计时器并在此之后停止LocationService,然后致电

 locationManager.stopUpdates(LocationListener).