gpt4 book ai didi

android - 谷歌地图 SphericalUtil computeOffset

转载 作者:行者123 更新时间:2023-11-29 21:13:01 30 4
gpt4 key购买 nike

我正在使用 google maps android 库中 SpericalUtil 的 computeOffset()。 computeOffset 采用参数:

public static LatLng computeOffset(LatLng from, double distance, double heading)

使用前两个标记的原始坐标,我可以在输入距离和航向后使用 computeOffset 生成另一条线。我的目标是使平行线相隔一定距离。但是正如您在下面看到的那样,当线几乎是南北时,它看起来很不错,但是当您向东和向西走时,在我看来两条线之间的距离不是相同的值。终点似乎是正确的距离,但有偏移。我怎样才能使所有的线条无论从哪个方向看起来都像第一张图片?

public void onMarkerDragEnd(Marker marker) {
showDistance();


LatLng markerCPosition = SphericalUtil.computeOffset(mMarkerA.getPosition(), 50, 90);

mMarkerC = getMap().addMarker(new MarkerOptions().position(markerCPosition).draggable(true).visible(false));

LatLng markerDPosition = SphericalUtil.computeOffset(mMarkerB.getPosition(), 50, 90);

mMarkerD = getMap().addMarker(new MarkerOptions().position(markerDPosition).draggable(true).visible(false));

updatePolyline();
}

North South

east west

最佳答案

目前您只是使用恒定角度(90 度)向侧面移动点。如果我对你的理解是正确的,并且你希望两条线彼此平行并分开一段距离,你需要考虑原始 A-B 线的标题,如下所示:

double heading = SphericalUtil.computeHeading(posA, posB);
LatLng markerCPosition = SphericalUtil.computeOffset(posA, 50, heading + 90);
LatLng markerDPosition = SphericalUtil.computeOffset(posB, 50, heading + 90);

关于android - 谷歌地图 SphericalUtil computeOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207553/

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