我的应用程序中有以下功能。
- 我使用 MyLocationOverlay 来获取我当前的位置。
- 我扩展了 MyLocationOverlay 以便能够放置自定义标记而不是闪烁的蓝色标记。
我需要关于最后一个要求的帮助。我只是想让一个标记保持固定在 MyLocationOverlay 说它最初找到的位置上,而不是在它从一个卫星跳到另一个卫星时四处移动。
我有哪些选择来创建这种类型的用户体验?
我的应用程序中有以下功能。
我需要关于最后一个要求的帮助。我只是想让一个标记保持固定在 MyLocationOverlay 说它最初找到的位置上,而不是在它从一个卫星跳到另一个卫星时四处移动。
我有哪些选择来创建这种类型的用户体验?
我建议保存在 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