2010-12-17 59 views
0

当我调用这个方法时,蓝点并没有出现在地图上,直到我从ddms发送位置, 突然出现。MyLocationOverlay没有出现

private void findMyLocation(final Location location){ 
    final MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView); 
    myLocationOverlay.enableMyLocation(); 
    myLocationOverlay.enableCompass(); 
    final GeoPoint point = new GeoPoint((int) (location.getLatitude() * 1E6), 
      (int) (location.getLongitude() * 1E6)); 
    controller.animateTo(point); 
    controller.setCenter(point); 
    mapView.getOverlays().add(myLocationOverlay); 
    mapView.postInvalidate(); 
} 

如何在调用此方法后显示蓝点? 非常感谢。

+0

正如CommonsWare所说,您如何建议在知道您的位置之前显示您的位置? – Falmarri 2010-12-17 21:03:59

回答

2

如何在调用此方法后显示蓝点?

你不行。

MyLocationOverlay,正如其名称所示,显示用户的位置。如果设备/仿真器不知道用户的位置,则无法显示它。

在设备的情况下,它将不显示用户的位置,直到它确定了所述位置(例如,GPS)为止。

在仿真器的情况下,它将不会显示用户的位置,直到它确定了所述位置(例如,DDMS)为止。

+0

你是说执行locationListener,特别是onLocationChanged会解决实际设备上的问题吗? (在仿真器上仍然没有出现) – 2010-12-17 22:01:10

+0

@Varand Tin:如果您已经开始获得GPS修正,则位置点*可能*显示得更快。我没有尝试过。我认为这样会有效果,但是我之前在这种事情上是错误的:-)关于模拟器,这并不重要,因为你仍然需要通过DDMS假装成GPS卫星,并且所以蓝点在您完成之前仍然不会出现,AFAIK。 – CommonsWare 2010-12-18 10:47:50