C# 如何在地图上找到围绕对角线的边框?(地理位置)

C# 如何在地图上找到围绕对角线的边框?(地理位置),c#,geolocation,geometry,gis,geo,C#,Geolocation,Geometry,Gis,Geo,用户在地图上画一条线,并希望在该线的特定距离内找到一些信息。 我有“lat,lon”格式的A和B位置,用户在“米,公里,…”中告诉我距离(A和A1之间的距离)。 我如何计算以“lat,lon”格式显示的A1、A2、B1、B2位置?我使用C#和用于处理位置 p、 s:我读过,它在笛卡尔网格系统上工作,但我无法调整它的代码来解决我的问题。有A和B坐标,你可以计算两个点的方位(注意,在一般情况下方位是不同的) 使用点A中的轴承Fi,您可以计算轴承Fi-90和Fi+90,并在相应轴承的所需距离处找到点

用户在地图上画一条线,并希望在该线的特定距离内找到一些信息。 我有“lat,lon”格式的AB位置,用户在“米,公里,…”中告诉我距离(A和A1之间的距离)。 我如何计算“lat,lon”格式显示的A1、A2、B1、B2位置?我使用C#和用于处理位置


p、 s:我读过,它在笛卡尔网格系统上工作,但我无法调整它的代码来解决我的问题。

A
B
坐标,你可以计算两个点的方位(注意,在一般情况下方位是不同的)

使用点
A
中的轴承
Fi
,您可以计算轴承
Fi-90
Fi+90
,并在相应轴承的所需距离处找到点A1和A2

B1、B2也一样

您可以从方位目标点获得公式,给定距离和从起点的方位章节

方位

θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )

where   φ1,λ1 is the start point, φ2,λ2 the end point 
(Δλ is the difference in longitude)
目的地

φ2 = asin( sin φ1 ⋅ cos δ + cos φ1 ⋅ sin δ ⋅ cos θ )
λ2 = λ1 + atan2( sin θ ⋅ sin δ ⋅ cos φ1, cos δ − sin φ1 ⋅ sin φ2 )

where   φ is latitude, λ is longitude, θ is the bearing 
(clockwise from north), δ is the angular distance d/R; 
d being the distance travelled, R the earth’s radius

你为什么不能适应它?因为你需要一个球面几何的精确解,或者因为你不能将纬度、经度转换成以千米为单位的数字?@OlivierJacot Descombes几乎两者都是,我可以容忍我的计算中最大10米的误差,我不知道如何替换Y的纬度和X的经度,每个纬度的经度数字都不同,现在不知何故,我认为这个公式可能不适用于地理位置:-?如果你需要一个精确的解决方案,那么这可能是一个数学问题。stackexchange.com将lat/lon转换为UTM(CoordinateSharp显然已经可以转换为UTM),以UTM(它使用米作为单位)执行计算,然后转换回lat/lon。