我的应用程序中具有以下功能。
- 我使用MyLocationOverlay来获取我的当前位置。
- 我扩展了MyLocationOverlay,以便能够删除自定义标记而不是闪烁的蓝色标记。
我需要最后一个要求的帮助。 我只是想让一个标记固定在MyLocationOverlay说它最初发现的位置上,并且在它从一个卫星跳到另一个卫星时不会四处移动。
创建此类用户体验有哪些选项?
我建议保存第一个输入到自定义位置覆盖层中的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,该 DrawableMapOverlay 仅绘制此点,而不是劫持 LocationOverlay