我正在尝试开发一种布局,该布局显示谷歌地图,其路线绘制在与该地图关联的叠加层上。我希望这个 mapView 是一个小的静态地图,以缩略图的形式显示用户遵循的主要路线,然后如果用户点击它,一个意图会带你到另一个活动,以全屏显示地图和路线以及所有缩放功能。
问题是,虽然我重写了 Overlay 的 onTap 方法设置新活动的意图,但它仅在我将 MapView 设置为 setEnabled(true) 时才有效,但如果我这样做,则可以拖动缩略图地图并由用户移动。
如果不够清楚,我很抱歉,但我不知道如何更好地解释它。
提前致谢
这是我自定义的类,它扩展了 Overlay 并覆盖了 onTap 方法:
class MapOverlay extends Overlay {
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
Intent i = new Intent(getApplicationContext(),
RouteMapActivity.class);
startActivity(i);
return false;
};
这是我的 onCreate 方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detailrun_activity);
map = (MapView) findViewById(R.id.mvMain);
map.setEnabled(true);
map.setClickable(true);
MapOverlay mapOverlay = new MapOverlay();
List<Overlay> listOfOverlays = map.getOverlays();
projection = map.getProjection();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
double lat = 28.063119 * 1E6, longi = -82.41128 * 1E6;
GeoPoint point = new GeoPoint((int) lat, (int) longi);
MapController myMapController = map.getController();
myMapController.setCenter(point);
}
现在我只在两个 GeoPoints 之间画一条直线,我没有收到任何 logcat 错误。
确实绘制了带有路线的地图,并且覆盖的 onTap 方法有效,但是如果我的 mapView 被定义为启用和可点击,它似乎只识别点击,但如果我这样做,那么用户也可以移动和拖动地图只要他按住屏幕。