gpt4 book ai didi

android - 如何在用作 map 的图像上绘制 GPS 位置?

转载 作者:行者123 更新时间:2023-11-30 03:43:26 25 4
gpt4 key购买 nike

我有一些商场图片,需要用作我正在制作的应用程序的 map 。我有 map 底角的 GPS 纬度/经度,我计算出了从底部 GPS 坐标到 map 图像顶部的距离。然而,这些并不是直线上升和下降的线性 map ,这意味着我不能把我的纬度和经度都画得漂亮整洁。

我尝试过使用各种公式,结果非常接近,但我无法绘制 map 左上角和右上角的顶部纬度和经度。到目前为止,这就是我所拥有的:

double distanceFromLeftToRightGPS = bottomLeft.distanceTo(bottomRight);
double bearingleftToRight= bottomLeft.bearingTo(bottomRight);

double distmapFromLeftToRightImg = map.getWidth();
double distmapFromTopToBottomImg = map.getHeight();

double percentageValueOfTopToBottomImg = (distmapFromTopToBottomImg * 100)
/ distmapFromLeftToRightImg;
double distanceFromTopToBottomGPS = (percentageValueOfTopToBottomImg * 0.01)
* distanceFromLeftToRightGPS;

double bearingToTopFromBottom = -90;
double lat1 = Math.toRadians(bottomLeft.getLatitude());
double lon1 = Math.toRadians(bottomLeft.getLongitude());

double dist = (distanceFromTopToBottomGPS/1000f)/6371.0f;

double lat2 = Math.asin(Math.sin(lat1) * Math.cos(dist)
+ Math.cos(lat1) * Math.sin(dist) * Math.cos(bearingToTopFromBottom));

double a = Math.atan2(Math.sin(bearingToTopFromBottom) * Math.sin(dist)
* Math.cos(lat1), Math.cos(dist) - Math.sin(lat1) * Math.sin(lat2));

System.out.println("a = " + a);
double lon2 = lon1 + a;

lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI;

System.out.println("Latitude = " + Math.toDegrees(lat2) + "\nLongitude = "
+ Math.toDegrees(lon2));

这让我非常接近,但结束位置偏离了它真正应该出现的位置。我也不确定我应该使用什么方位来查看 map 底部的内容。如果其他人有一些关于如何让它工作的信息,那就太棒了。

最佳答案

您需要在 map 上确定 3 个点及其纬度/经度坐标。然后使用 Helmert 转换。
SO 上有一些“Helmert”转换的帖子。

关于android - 如何在用作 map 的图像上绘制 GPS 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399453/

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