【问题标题】:MapActivity - How to restrict zoom levels?MapActivity - 如何限制缩放级别?
【发布时间】:2012-07-27 19:45:43
【问题描述】:

我在 HelloMapView Tutorial 和许多 StackOverflow 资源之后实现了一个带有 Pins 的 MapActivity

为了我的应用程序的目的,我想限制缩放级别的最小值和最大值。事实上,我想避免在我的 MapView 上使用 android:clickable="true"

我找不到如何做到这一点。

  • 有可能吗?
  • 有人知道怎么做吗?
  • 是否有像 onZoomChanged() 这样我没有看到的内置函数可以覆盖?

AndroidManifest.xml

<uses-sdk
    android:maxSdkVersion="16"
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

MyMapActivity.java

// Here is my MapView
mMapView = (MapView) findViewById(R.id.game_map);
mMapView.setBuiltInZoomControls(false);
mMapView.setSatellite(true);
mMapController = mMapView.getController();
mMapController.setZoom(CONST_MAP_ZOOM);
mMapController.setCenter(new GeoPoint(48856700, 2351000));
mMapController.animateTo(new GeoPoint(48856700, 2351000));

但是当我使用手指时,我可以缩小直到看到整个星球。

我想要限制缩放级别。

【问题讨论】:

    标签: java android android-mapview


    【解决方案1】:

    MapView 确实有 onSizeChanged

    https://developers.google.com/maps/documentation/android/reference/com/google/android/maps/MapView#onSizeChanged(int, int, int, int)

    也许你可以听一下,然后调用 getZoomLevel() 看看它是否在你可以接受的范围内,然后从那里改变它。

    或者更好的是,您可以覆盖 onDraw 并始终在那里检查它。 Set minimum zoom level for MapView

    【讨论】:

    • 我的 Eclipse 不会让我实现这个...不在 MapView 或 MapViewController 上。
    • 发生了很多事情。您是否已经完成了 HelloMapView 教程? developers.google.com/maps/documentation/android/hello-mapview
    • 是的,我做到了,我的地图效果很好,周围有大头针和圆圈。我只是想通过触摸来限制缩放...
    • 既然 onSizeChanged 有什么 API 可用?有 setOnSizeChaned 方法吗?我在文档中找不到这些信息...
    【解决方案2】:

    我找到了出路。

    我在 MapView 上禁用了多点触控:

    <com.google.android.maps.MapView
        android:id="@+id/game_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:apiKey="@string/google_maps_api_key"
        android:clickable="true" />
    

    然后我隐藏缩放控件:

    mMapView = (MapView) findViewById(R.id.game_map);
    mMapView.setBuiltInZoomControls(false);
    

    然后我实现自己的缩放控件。

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2020-01-08
      • 2017-07-05
      • 2010-12-10
      • 2011-04-18
      相关资源
      最近更新 更多