我想在google地图中对一个区域执行缩放
map.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(southwest, northeast), padding)问题是我没有:西南和东北点
我只有地图的中心(LatLnt)和西南和东北之间的距离,
我想知道如何从map_center计算西南和东北点以及距离?
欢迎任何帮助
提前谢谢你。
发布于 2014-04-05 01:57:33
此答案假设您使用的是正方形地图。换句话说,与起点的角度是45度(也假设地图是平的,这意味着距离很小)。我还假设你不在两极(是的,我知道!)。
好的,记住这一点,它是简单的几何学。因为您知道起点和从西南角到东北角的长度,所以我使用这个距离的一半,因为这是从起点到每个点的距离。然后,我要找出这个“半距离”的x和y分量(与正方形地图相同)。要做到这一点,我只需使用公式latlongOffset等于“半距离”的一半乘以2的平方根。
代码如下(提供LatLng startPoint、Double someDistance和int填充):
LatLng southwest, northeast;
Double swLat, neLat, swLng, neLng;
Double halfSomeDistance = someDistance / 2.0;
Double latlongOffset = halfSomeDistance * Math.sqrt(2.0) / 2.0;
swLat = startPoint.latitude - latlongOffset;
swLng = startPoint.longitude - latlongOffset;
neLat = startPoint.latitude + latlongOffset;
neLng = startPoint.longitude + latlongOffset;
southwest = new LatLng(swLat, swLng);
northeast = new LatLng(neLat, neLng);
map.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(southwest, northeast), padding));如果您不使用正方形贴图,则需要使用直角三角形几何图形来获取latOffset和lngOffset,因为它们将不同。
我希望这能帮到你。
https://stackoverflow.com/questions/22658485
复制相似问题