- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序中,我需要找到一些(3 个或更多)GPS 点的中点。
我已经找到两点之间的距离,如下所示
public class DistanceOfGeoPoints {
public static long distanceinKMeters(double dblLat, double dblNewLat, double dblLong, double dblNewLong)
{
try
{
//double dblDistance = 180 / (dblPI * Math.Acos(Math.Sin(dblLat) * Math.Sin(dblNewLat) + Math.Cos(dblLat) * Math.Cos(dblNewLat) * Math.Cos(dblLong - dblNewLong)));
double dblDegree2Radius = Math.PI / 180;
double dbllongdiff = (dblNewLong - dblLong) * dblDegree2Radius;
double dbllatdiff = (dblNewLat - dblLat) * dblDegree2Radius;
double a = Math.pow(Math.sin(dbllatdiff / 2.0), 2) + Math.cos(dblNewLat * dblDegree2Radius) * Math.cos(dblLat * dblDegree2Radius) * Math.pow(Math.sin(dbllongdiff / 2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double dblDistance = 6367 * c; //Earth Radius * value (result in KM)
// return dblDistance;
long intdistance = (Math.round(dblDistance * 1000));
return intdistance;
}
catch (Exception ex)
{
return 0;
}
}
}
现在我想要N个GPS点的中点
请帮帮我。
最佳答案
欧几里德距离中两点的中点就是x和y坐标的平均值。如果我们只是平均点 A 和 B 的纬度和经度,这会在 A 和 B 之间给出一个点,但它不需要等距。
您可能想要的是将球面坐标转换为欧氏坐标,通过平均 x 和 y 找到中点,然后转换回纬度、经度。
如果我们使用超过 2 个点来执行此操作,我们需要澄清“中点”的含义。
如果我们想在欧氏几何中找到 N 个点的中点,我们只需对所有 x 值和所有 y 值求平均值。这给了我们一个合理的“中间点”,但这个平均点通常与所有三个点的距离不等。给定三个点,我们可以计算出与这三个点等距的唯一点;此点是由三个点定义的三角形的外接中心。但是由于三个点定义一个圆,这个过程不能推广到 n 个点。给定 4 个或更多点,可能没有与所有 4 个点等距的点。无论我们使用欧库里德距离还是球面几何距离,都是如此。
在下图中,我们可以看到外接圆心点正好距离A、B、C点5个单位。然而这个点感觉上并不是真正的“中间”。另一方面,由平均值定义的中点看起来确实在中间,即使它更接近 A 而不是 B 或 C。
对于由 (lattitude, longitude) 定义的 n 个点,最好的方法可能是将所有这些点都转换为欧氏点,计算平均值,然后转换回 (lattitude,longitude.)可以在此处找到执行此转换的一些代码:Processing Forum还有一个很好的wikipedia page解释你需要理解的背景数学。
关于java - 如何找到一些 GPS 点的中点/坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973485/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!