在我的应用程序中,我在地图上绘制路线路径,无论我移动到哪里,并固定来源和目的地。所以我在myManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,new myLocationListener());时使用LocationManager类来获取位置更新。我走了10米的距离,没有位置更新。所以为了检查我的代码。我只是将功能放在onStatusChanged函数中(因为它至少被调用了一次).i运行应用程序,调用onStatusChanged。我的问题是pin the source and destination and route drawing class called continuously even though the onStatusChanged is not called。和pin is not pointed and root is not drawn even though their class is called。
我的代码:
public class Map extends MapActivity
{
// class for pin the location
class MapOverlay extends com.google.android.maps.Overlay
{
............
Log.e("loc","true");
}
public void onCreate(Bundle savedInstanceState)
{
..................
myManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,new myLocationListener());
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
class myLocationListener implements LocationListener {
public void onLocationChanged(Location loc) {
}
........
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.e("MAP","onStatusChanged - called");
....// finding lat and lng getting.
Log.e("Updated Location",""+latPointDst+" , "+lngPointDst);
..........
// here i called MyOverlay class -- root drawing.
// here i called MapOverlay class -- pin the location
}
}
public class MyOverlay extends Overlay {
.............
Log.e("location change","drawing");
}
}我的logcat:
05-30 13:29:54.653: ERROR/MAP(3850): onStatusChanged - called
05-30 13:29:54.673: ERROR/Updated Location(3850): 9.909228086471558 , 78.10081958770752
05-30 13:29:54.743: ERROR/loc(3850): true
05-30 13:29:54.783: ERROR/loc(3850): true
05-30 13:29:54.793: ERROR/loc(3850): true
05-30 13:29:54.803: ERROR/loc(3850): true
05-30 13:29:54.813: ERROR/location change(3850): drawing
05-30 13:29:54.983: ERROR/loc(3850): true
05-30 13:29:54.993: ERROR/loc(3850): true
05-30 13:29:54.993: ERROR/loc(3850): true
05-30 13:29:55.003: ERROR/loc(3850): true
05-30 13:29:55.013: ERROR/location change(3850): drawing
05-30 13:29:55.193: ERROR/loc(3850): true
05-30 13:29:55.203: ERROR/loc(3850): true
05-30 13:29:55.223: ERROR/loc(3850): true
05-30 13:29:55.233: ERROR/loc(3850): true
05-30 13:29:55.243: ERROR/location change(3850): drawing
05-30 13:29:55.473: ERROR/loc(3850): true
05-30 13:29:55.483: ERROR/loc(3850): true
05-30 13:29:55.573: ERROR/loc(3850): true
05-30 13:29:55.603: ERROR/loc(3850): true
05-30 13:29:55.633: ERROR/location change(3850): drawing
05-30 13:29:55.693: ERROR/loc(3850): true诸若此类。我在状态已更改的情况下编写了类调用,但我不知道如何在不更改状态的情况下连续调用。。如果我错了,请帮助我做我需要的。请帮帮我。
发布于 2011-05-30 16:37:13
我认为你在这里需要关注两件事:
1-你不应该依赖onStatusChanged来获取最近的位置。在以下情况下调用该方法:
后最近变得可用,则
获取最新位置更改的唯一方法是在onLocationChanged中。
2-覆盖图的绘制方法将称为a lot。您不应该依赖该方法来添加标记。可以在draw方法之外将标记添加到覆盖中。填充覆盖或使地图无效时,添加到覆盖中的任何标记都将显示在地图上。不需要在draw方法中添加标记。
正如您可以从此处接受的答案中看到的那样,Drawing a line/path on Google Maps ()方法用于在两个地理点之间绘制一条路径。如果要向地图添加标记(图钉),可以在覆盖图上执行此操作,有关如何向地图添加标记的详细信息,请参见此答案How to clear / reset an ItemizedOverlay in Android?。
https://stackoverflow.com/questions/6173806
复制相似问题