我正在寻找一些 VBA 代码(算法)以将 GPS 位置列表(在本例中为船舶轨迹)与给定的 GPS 位置相匹配。也就是说,列表中位于该位置周围具有给定半径的圆内的所有位置。
见图片:所以只有所有位置的“绿色位置”匹配。抱歉图片不佳,用 Windows Paint 手工制作 ;-)
所有位置都以纬度 + 经度给出,例如 52.24782、4.12082。
我正在寻找一些 VBA 代码(算法)以将 GPS 位置列表(在本例中为船舶轨迹)与给定的 GPS 位置相匹配。也就是说,列表中位于该位置周围具有给定半径的圆内的所有位置。
见图片:所以只有所有位置的“绿色位置”匹配。抱歉图片不佳,用 Windows Paint 手工制作 ;-)
所有位置都以纬度 + 经度给出,例如 52.24782、4.12082。
功能
Public Function CheckCoords(x#, y#, radius#) As String
' x^2 + y^2 = r^2
' ==> results true if (p,q) fall outside of the circle
CheckCoords = IIf((x ^ 2 + y ^ 2) < radius ^ 2, "outside circle", "inside circle")
End Function
实际实施所需的单位转换
找到这个:http ://www.movable-type.co.uk/scripts/latlong.html
我只需要将代码重写为 VBA 代码并将其与@Cylian 的代码结合使用