Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 确定多个点的质心_Math_Google Maps_Geometry_Geolocation - Fatal编程技术网

Math 确定多个点的质心

Math 确定多个点的质心,math,google-maps,geometry,geolocation,Math,Google Maps,Geometry,Geolocation,我正在编写一个用python编写的映射应用程序,需要得到N个点的lat/lon质心。 假设我有两个位置 a.lat = 101 a.lon = 230 b.lat = 146 b.lon = 200 使用欧几里德公式获得两点的中心相当容易。我想要 能够做到以上两点 从根本上说,我希望做一些事情,比如,一个人可以输入多个地址,然后找到一个对每个人来说都是等距的地点。如果点形成一个。然而,无法保证一组纬度和经度是如此简单,因此可能首先需要找到点的位置 编辑:如前所述,必须对球体的曲面进行校正。我

我正在编写一个用python编写的映射应用程序,需要得到N个点的lat/lon质心。 假设我有两个位置

a.lat = 101
a.lon = 230

b.lat = 146
b.lon = 200
使用欧几里德公式获得两点的中心相当容易。我想要 能够做到以上两点


从根本上说,我希望做一些事情,比如,一个人可以输入多个地址,然后找到一个对每个人来说都是等距的地点。

如果点形成一个。然而,无法保证一组纬度和经度是如此简单,因此可能首先需要找到点的位置


编辑:如前所述,必须对球体的曲面进行校正。我的错误在于(没有思考)假定这是可以理解的+1给他。

增加了安德鲁·罗林斯的答案

您还需要确保,如果您在0/360经度线上的任何一侧都有点,并且您的测量方向是“正确的”


看看下面链接的pdf文档。它解释了如何在球体表面应用提及


来源:
还有一个可供下载。

值得赞扬的是找到了原始来源的链接,当然,Jenness Enterprises提供了这些信息。注:我与本材料的作者没有任何关系。

如果你要平均角度,并且必须处理它们穿过0/360,那么将每个值的正弦和余弦相加,然后平均=atan2(正弦和余弦和)

(注意atan2函数中的参数顺序)

分别平均纬度和经度。

下面的PDF比Jenness Enterprises的海报更详细。它还处理两个方向上的转换,并处理球体(如地球)而不是完美球体的转换


这就是我的应用程序将东半球与西半球完全分开处理的主要原因。例如,没有“美国的范围”,有“US-E”和“US-W”,我根据需要将它们合并。这是一个明确的改进。我最近一直在做很多关于GIS的工作,所以我认为这是可以理解的。在一般论坛上,这是一个可怕的假设+谢谢你。让我们只希望它是所有值得咀嚼的东西。PDF不见了。改为检查这个[24MB!]我已经通过了你们给出的链接。为了计算直角坐标和三角形的质心,我们需要右半径。但是如何计算球体的半径呢?对不起,@Winbros。我没有示例实现或伪代码。Wikipedia atricle和海报都提供了背景数据。翻译成代码应该不会太难。只是大量的循环和浮点运算
:)
Is the center of (0,359) and (0, 1) at (0,0) or (0,180)?