位置没有更新Android模拟器中的新geo修复

时间:2010-10-04 20:10:55

标签: java android android-emulator

我正在努力使MapView基于GeoPoint缩放到当前位置。我在telnet中使用geo fix命令设置位置。我的问题是,当我第一次使用地理位置修复输入位置时,我的代码将正确导航到地图上的某个位置。如果我尝试使用地理位置修复设置另一个位置,但它不会更新。以下是要更新的代码:

public void updateLocation(Location loc) {
    p = new GeoPoint((int)(loc.getLongitude() * 1E6),(int)(loc.getLatitude() * 1E6));

    mc = mapView.getController();

    mc.animateTo(p);
}

这是我调用更新的代码:

LocationListener onLocationChange=new LocationListener() {
    public void onLocationChanged(Location location) {
        updateLocation(location);
    }

等...

我在onResume()中有以下内容:

    super.onResume();
    myLocationManager.requestLocationUpdates("gps", 0, 200, onLocationChange);

我试图解决的问题远远不能满足最小距离要求。任何人对我缺少的东西都有任何想法吗?

2 个答案:

答案 0 :(得分:3)

致电mapView.invalidate(); (请参阅View:invalidate()mapView.postInvalidate(); (请参阅View:postInvalidate(),具体视具体而定

之后是否在UI线程上运行
mc.animateTo(p);

答案 1 :(得分:0)

假设您的MapActivity实现了LocationListener,那么请更改

myLocationManager.requestLocationUpdates("gps", 0, 200, onLocationChange);

myLocationManager.requestLocationUpdates("gps", 0, 200, this);

'this'拥有位置监听器