获取当前位置的经纬度问题
Posted
技术标签:
【中文标题】获取当前位置的经纬度问题【英文标题】:Problem with getting latitude and longitude of current location 【发布时间】:2011-09-23 07:28:03 【问题描述】:我想通过使用 gps 获取纬度和经度。我的代码运行成功,但运行速度太慢。 如何获得地理点(纬度和经度)最小持续时间(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】:检查this post。这应该可以帮助您了解如何更好地使用位置信息。
要在 30 秒后停止定位,您可以启动计时器并在该时间后通过调用停止 LocationService
locationManager.stopUpdates(LocationListener).
【讨论】:
以上是关于获取当前位置的经纬度问题的主要内容,如果未能解决你的问题,请参考以下文章