gpt4 book ai didi

c# - 如何使用 C#/SQL Server 2008 空间 "average"两个或多个地理线串

转载 作者:行者123 更新时间:2023-11-30 12:17:03 24 4
gpt4 key购买 nike

假设我从对特定候鸟行为的研究中得到了一组结果。这只鸟已被贴上标签,GPS 接收器会记录它在五年内每年所遵循的迁徙路径。结果存储在一个 SQL Server 表中,该表包含一个用于每年路径的地理线串。

您将如何定义表示五年期间遵循的“平均”路径的线串?

请注意,每个示例线串可能包含不同数量的点。它们也不会在完全相同的点开始和结束。

到目前为止,我采用的最佳方法是使用插值来确定沿每条线串以特定比例设置的点。因此,例如,起点、四分之一的路程、每条路线的一半等。然后计算所有路线上这些位置的平均纬度/经度,并根据这些平均点构建新的地理线串。

我查阅了几本计算几何书籍,看看是否有更好的算法或技术来执行此操作,但似乎没有任何相关内容。我无法相信这不是其他人以前没有做过的事情......

我不需要确切的代码 - 只是对任何更好的通用方法的建议。我也不需要“ super 准确”。作为旁注,我理想情况下希望该方法也适用于两个或多个多边形。

感谢您的任何建议!

最佳答案

我现在无法真正发布任何示例代码,因为我现在正在使用 iPhone,但我确实有一个建议(不知道是好是坏)...

对于每条线,确定每个顶点沿线的位置(百分比)。

获取这些值后,每行使用所有其他行的百分比值计算沿每行的新顶点。

此时,每条线应包含相同数量的顶点,并且每条线的第 N 个顶点直接对应于其他每条线的第 N 个顶点。

现在只需对每条线的顶点 0 进行平均,即可获得“平均”线的顶点 0。对每行的 vertex1 重复,等等。

这应该适用于直线和多边形。

请注意,如果您可以确定每条线的准确度值,您也可以使用加权平均算法。过去,我在尝试平均两条线时使用过这种方法。我们能够对每条线进行加权,通常为 50:50,但也可以一直到 100:0 或 0:100,具体取决于来源的准确性。

我回去重读了你的问题,看到你已经谈到了插值。您谈论的方式似乎可以在计算插值点(固定间隔点)的平均值之前平滑或概括线条。使用我的方法,您将首先对每条线进行致密化,然后计算平均值。看起来这可能更准确,但也许不是。

关于c# - 如何使用 C#/SQL Server 2008 空间 "average"两个或多个地理线串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298206/

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