gpt4 book ai didi

android - 谷歌地图 v2 居中和转动相机位置以适合两个标记

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:57 25 4
gpt4 key购买 nike

我正在努力如何移动相机以适合我的两个标记并使它们保持在同一水平面上。因此,这意味着修改缩放以适合它们并转动相机以适契约(Contract)一行上的标记。

接下来的两张图片将澄清我的问题:

Current state Desired state

所以,到目前为止我所做的是:

public void centerIncidentRouteOnMap(List<LatLng> copiedPoints) {
double minLat = Integer.MAX_VALUE;
double maxLat = Integer.MIN_VALUE;
double minLon = Integer.MAX_VALUE;
double maxLon = Integer.MIN_VALUE;
for (LatLng point : copiedPoints) {
maxLat = Math.max(point.latitude, maxLat);
minLat = Math.min(point.latitude, minLat);
maxLon = Math.max(point.longitude, maxLon);
minLon = Math.min(point.longitude, minLon);
}
final LatLngBounds bounds = new LatLngBounds.Builder().include(new LatLng(maxLat, maxLon)).include(new LatLng(minLat, minLon)).build();
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 120));
}

但这只会让两个标记适合屏幕,所以我需要知道如何以正确的角度旋转相机以获得最后一张照片。

谁能帮我解决这个问题?

谢谢!

最佳答案

我不确定我有多少是正确的,但我只是分享我的想法。

  1. 求两个标记的中点(经纬度)

    private LatLng midPoint(double lat1, double long1, double lat2,double long2)
    {

    return new LatLng((lat1+lat2)/2, (long1+long2)/2);

    }
  2. 计算中点与任何其他标记位置之间的角度。

    private double angleBteweenCoordinate(double lat1, double long1, double lat2,
    double long2) {

    double dLon = (long2 - long1);

    double y = Math.sin(dLon) * Math.cos(lat2);
    double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
    * Math.cos(lat2) * Math.cos(dLon);

    double brng = Math.atan2(y, x);

    brng = Math.toDegrees(brng);
    brng = (brng + 360) % 360;
    brng = 360 - brng;

    return brng;
    }
  3. 将 map 旋转到该角度。

    CameraPosition cameraPosition = new CameraPosition.Builder().target(midPoint(lat1, lng1, lat2, lng2)).zoom(14).bearing(angleBteweenCoordinate(lat1, lng1, lat2, lng2)).build();

    mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

关于android - 谷歌地图 v2 居中和转动相机位置以适合两个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com