相关疑难解决方法(0)

偏离MapFragment的中心以获取移动目标lat/lng和缩放级别的动画

我有一个UI,它有一个MapFragment,透明视图覆盖在它上面.地图占据整个屏幕,而视图只占屏幕的左三分之一.结果,地图的默认"中心"关闭.当有人点击标记时,我想将该标记居中在MapFragment的整个可见区域(而不是MapFragment本身的中心).

由于这很难用文字描述,让我用几张图片.假设这是我的UI看起来的样子:

默认地图

当用户点击一个标记时,我想要将它居中放大以便更接近它.没有任何调整,这是你会得到的:

使用错误的居中标记映射

我想要的是标记居中,但在右边的空间,如下所示:

使用正确居中的标记映射

如果您不使用地图投影更改缩放级别,则很容易实现此专长:

// Offset the target latitude/longitude by preset x/y ints
LatLng target = new LatLng(latitude, longitude);
Projection projection = getMap().getProjection();
Point screenLocation = projection.toScreenLocation(target);
screenLocation.x += offsetX;
screenLocation.y += offsetY;
LatLng offsetTarget = projection.fromScreenLocation(screenLocation);

// Animate to the calculated lat/lng
getMap().animateCamera(CameraUpdateFactory.newLatLng(offsetTarget));
Run Code Online (Sandbox Code Playgroud)

但是,如果您同时更改缩放级别,则上述计算不起作用(因为lat/lng偏移在不同的缩放级别发生变化).

让我来看一下尝试修复的列表:

  • 快速更改缩放级别,进行计算,缩放回原始摄像机位置,然后设置动画.不幸的是,突然的相机改变(即使它只是一瞬间)很遗憾非常明显,我想避免闪烁.

  • 将两个MapFragments叠加在一起,让一个执行计算,而另一个显示.我发现MapFragments并不是真正构建成彼此叠加的(这条路线上有不可避免的错误).

  • 通过缩放级别平方的差异修改屏幕位置的x/y.从理论上讲,它应该可以工作,但它总是相当长一段时间(〜.1纬度/经度,足够远离它).

有没有办法计算offsetTarget即使缩放级别改变?

android android-maps-v2

49
推荐指数
4
解决办法
2万
查看次数

如何获得某些位置之间的中心点(LatLng)?

任何人都可以帮助我获得中心点.我有6个LatLng对象,现在我需要让LatLng对象居中.非常感谢!

android google-maps

3
推荐指数
3
解决办法
8077
查看次数

在用户位置锁定Google地图

我希望我的应用程序中的谷歌地图始终完全以用户为中心,并随着当前位置的变化而随之移动.(想想口袋妖怪去,地图实际上如何与用户一起移动)

我目前的最佳实现只是每次更改位置时都会使用动画更新摄像机位置,如下所示:

            // update the location of the camera based on the new latlng, but keep the zoom, tilt and bearing the same
        CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng,
                    googleMap.getCameraPosition().zoom, MAX_TILT, googleMap.getCameraPosition().bearing));
        googleMap.animateCamera(cameraUpdate);

        googleMap.setLatLngBoundsForCameraTarget(toBounds(latLng, 300));
Run Code Online (Sandbox Code Playgroud)

然而,这使得相机运动有些不稳定并且它落后于实际的用户位置标记,特别是如果用户快速移动.

有没有办法绑定谷歌地图相机的运动,以便它完全匹配用户的运动?

android google-maps

3
推荐指数
1
解决办法
1375
查看次数

标签 统计

android ×3

google-maps ×2

android-maps-v2 ×1