开发者

Problem with getting latitude and longitude of current location

开发者 https://www.devze.com 2023-03-15 09:39 出处:网络
i want to get latitude and longitude by using gps ..my code is works successfully but it works too slow.

i want to get latitude and longitude by using gps ..my code is works successfully but it works too slow. how to get geopoint (latitude and longitude) minimun time duration (20 sec.) ? and how to stop location service or GPS after 30 sec.?

 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 Geo开发者_Go百科Point((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;
        }
    } 

}


Check this post. This should help you understand how to use location better.

For stopping the location after 30 seconds you may start a timer and stop the LocationService after that time by calling

 locationManager.stopUpdates(LocationListener).
0

精彩评论

暂无评论...
验证码 换一张
取 消