首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapActivity -如何限制缩放级别?

MapActivity -如何限制缩放级别?
EN

Stack Overflow用户
提问于 2012-07-27 19:45:43
回答 2查看 858关注 0票数 2

我实现了一个带有Pins的MapActivity,它遵循HelloMapView教程和许多StackOverflow资源。

为了我的应用程序,我想限制缩放级别的最小和最大。实际上,我希望避免在我的MapView上使用MapView。

我找不到怎么做到这一点的。

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

AndroidManifest.xml

代码语言:javascript
复制
<uses-sdk
    android:maxSdkVersion="16"
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

MyMapActivity.java

代码语言:javascript
复制
// 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));

但当我用手指,我可以放大,直到我看到整个星球。

我想要的是限制变焦级别。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-29 21:54:47

我找到了出路。

我在MapView上禁用了多点操作:

代码语言:javascript
复制
<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" />

然后我隐藏缩放控件:

代码语言:javascript
复制
mMapView = (MapView) findViewById(R.id.game_map);
mMapView.setBuiltInZoomControls(false);

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

票数 0
EN

Stack Overflow用户

发布于 2012-07-27 19:51:26

MapView在onSizeChanged上确实有

请参阅https://developers.google.com/maps/documentation/android/reference/com/google/android/maps/MapView#onSizeChanged(int

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

或者更好的是,您可以重写onDraw并始终在那里检查它。为MapView设置最小缩放级别

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11694696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档