-1

我正在尝试开发一种布局,该布局显示谷歌地图,其路线绘制在与该地图关联的叠加层上。我希望这个 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 被定义为启用和可点击,它似乎只识别点击,但如果我这样做,那么用户也可以移动和拖动地图只要他按住屏幕。

4

1 回答 1

1

您可以通过此链接根据您的位置获取静态谷歌地图图像。您可以在 imageview 中显示并单击您可以定位具有 MapView 的新活动。我认为这对您来说可能是一个不错的选择。

于 2012-11-05T07:47:01.730 回答