0

我的应用程序中有以下功能。

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

我需要关于最后一个要求的帮助。我只是想让一个标记保持固定在 MyLocationOverlay 说它最初找到的位置上,而不是在它从一个卫星跳到另一个卫星时四处移动。

我有哪些选择来创建这种类型的用户体验?

4

1 回答 1

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);
        ...
        ...

您还可以捕获此位置并创建一个仅绘制此点而不是劫持 LocationOverlay 的新 DrawableMapOverlay

于 2012-09-23T08:55:52.207 回答