我正在努力使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);
我试图解决的问题远远不能满足最小距离要求。任何人对我缺少的东西都有任何想法吗?
答案 0 :(得分:3)
致电mapView.invalidate();
(请参阅View:invalidate())或mapView.postInvalidate();
(请参阅View:postInvalidate()),具体视具体而定
mc.animateTo(p);
答案 1 :(得分:0)
假设您的MapActivity实现了LocationListener,那么请更改
myLocationManager.requestLocationUpdates("gps", 0, 200, onLocationChange);
到
myLocationManager.requestLocationUpdates("gps", 0, 200, this);
'this'拥有位置监听器