首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌地图api v2缩放具有西南和东北之间的中心和距离

谷歌地图api v2缩放具有西南和东北之间的中心和距离
EN

Stack Overflow用户
提问于 2014-03-26 18:42:52
回答 1查看 416关注 0票数 0

我想在google地图中对一个区域执行缩放

代码语言:javascript
复制
map.animateCamera(CameraUpdateFactory.newLatLngBounds(new LatLngBounds(southwest, northeast), padding)

问题是我没有:西南和东北点

我只有地图的中心(LatLnt)和西南和东北之间的距离,

我想知道如何从map_center计算西南和东北点以及距离?

欢迎任何帮助

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2014-04-05 01:57:33

此答案假设您使用的是正方形地图。换句话说,与起点的角度是45度(也假设地图是平的,这意味着距离很小)。我还假设你不在两极(是的,我知道!)。

好的,记住这一点,它是简单的几何学。因为您知道起点和从西南角到东北角的长度,所以我使用这个距离的一半,因为这是从起点到每个点的距离。然后,我要找出这个“半距离”的x和y分量(与正方形地图相同)。要做到这一点,我只需使用公式latlongOffset等于“半距离”的一半乘以2的平方根。

代码如下(提供LatLng startPoint、Double someDistance和int填充):

代码语言:javascript
复制
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,因为它们将不同。

我希望这能帮到你。

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

https://stackoverflow.com/questions/22658485

复制
相关文章

相似问题

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