【问题标题】:Change Google Map Offset Center更改谷歌地图偏移中心
【发布时间】:2017-01-23 17:19:02
【问题描述】:

我正在尝试在地图上设置用户位置,使其位于屏幕底部向上约 1/3 的位置,并且当地图旋转时,它将围绕该点旋转。

我最接近实现这一点的方法是使用setPadding() 方法,但是,这会导致地图在旋转时有点晃动,因为中心点会“浮动”在它实际应该在的位置周围。看起来很丑

int mapHeight = mapView.getHeight();
googleMap.setPadding(0, mapHeight / 5, 0, 0);

有没有更好的方法来做到这一点?

编辑:如下图所示

【问题讨论】:

  • 也许这对你有帮助:stackoverflow.com/questions/41469392/…
  • 我不明白该答案如何让我将用户位置锁定到地图中心以外的位置。
  • 你能解释一下你想要做什么吗?也许是一张图片……

标签: android google-maps offset


【解决方案1】:

你不需要填充

根据需要更改地图点 X 和 Y 值,您可以在需要的地方调用它!可能在你的onLocationChanged 里面,比如changeOffsetCenter(location.getLatitude(),location.getLongitude());

 public void changeOffsetCenter(double latitude,double longitude) {
            Point mappoint = mGoogleMap.getProjection().toScreenLocation(new LatLng(latitude, longitude));
            mappoint.set(mappoint.x, mappoint.y-100); // change these values as you need , just hard coded a value if you want you can give it based on a ratio like using DisplayMetrics  as well
            mGoogleMap.animateCamera(CameraUpdateFactory.newLatLng(mGoogleMap.getProjection().fromScreenLocation(mappoint)));
        }

输出:

【讨论】:

  • @ZeroOne 您的问题不清楚请详细说明?你可以有一个中心点就是你在问什么?
  • 基本上,如何将多个标记重新定位在地图底部?
  • 朋友,这个答案是针对中心点而不是中心点,您可以通过在底部选择一个具有法律缩放级别的主标记(凸轮没有缩放)或使用类似 where 的解决方案来做到这一点您在某些位置之间取中心点(LatLng)并将其保持为中心位置。检查这可能会有所帮助> stackoverflow.com/a/35646210/5188159 找到一个位置与此答案无关,但根据需要移动中心点(使用 x,y)是我在这里提到的一个:)
  • 我更喜欢这个:mMap.setPadding(leftPx, topPx, rightPx, bottomPx); >>stackoverflow.com/a/20671939/929086
  • 您可以使用Point.offset(xOfffset, yOffset) 为该点添加偏移量,而不是使用Point.set() 设置新值
【解决方案2】:

接受的答案可能是“animateCamera”的作品。它使“旋转抖动”几乎看不见。所以更容易使用

mMap.setPadding(leftPx, topPx, rightPx, bottomPx)

使用 mMap.animateCamera 或两次mMap.moveCamera(在改变方位的情况下 第一个 moveCamera 与设备中心一起旋转,第二个 moveCamera 使用填充使中心正确)

这是一种 hack,而 google 不考虑 setPadding 来修复旋转

【讨论】:

    【解决方案3】:

    Google map v3 beta 似乎修复了它,现在使用填充可以正确移动 pivotX/pivotY 进行旋转 https://developers.google.com/maps/documentation/android-sdk/v3-client-migration

    【讨论】:

      猜你喜欢
      • 2017-09-04
      • 1970-01-01
      • 2015-02-04
      • 2016-06-29
      • 1970-01-01
      • 2017-07-06
      • 2012-05-26
      相关资源
      最近更新 更多