2012-09-23 11 views
0

我在我的应用程序中有以下功能。MyLocatoinOverlay disableMyLocation或使用OverlayItem

  1. 我使用MyLocationOverlay获取我的当前位置。
  2. 为了能够放下自定义标记而不是闪烁的蓝色标记,我扩展了MyLocationOverlay。

我需要最后一项要求方面的帮助。我只想让一个标记保持固定在MyLocationOverlay最初发现的位置,而不是从卫星跳转到卫星时四处移动。

创建此类用户体验有哪些选择?

回答

0

我建议保存第一个获取馈送到CustomLocationOverlay中drawMyLocation函数的地址点,并使用它代替馈送给该函数的myLocation。

int intFirstGeoPoint = 0; 
GeoPoint FirstGeoPoint; 

protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) { 

     if(intFirstGeoPoint == 0){ 
      FirstGeoPoint=myLocation; 
      intFirstGeoPoint=1; 
     }else{ 
      myLocation=FirstGeoPoint; 
     } 

     // translate the GeoPoint to screen pixels 
     Point screenPts = mapView.getProjection().toPixels(myLocation, null); 
     ... 
     ... 

你也可以抓住这个位置,并创建一个新的DrawableMapOverlay只绘制了这一点,而不是霸王硬上弓LocationOverlay

+0

你应该做的另一个问题。但是,是的。使用相同的FirstGeoPoint,在那一点做一个canvas.drawText(),并加上一些偏移量。如果你提出另一个问题,我会提供更多细节 – greekygyro