微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何计算给定中心和方位角的扇区点的地理坐标

如何解决如何计算给定中心和方位角的扇区点的地理坐标

我有中心点的地理坐标,半径和方位角以及扇形角也是已知的。基于这些参数,我想计算扇区点的 GEO 坐标。请检查图片以了解确切问题。

enter image description here

我检查了以下问题,但不完全是我要找的。我完全了解GEO空间几何。

How to calculate endPoint using initial point,distance and azimuth?

解决方法

以下应该为您提供所需的端点。我参考了Geo Distance with Azimuth。 您只需要更改扇区点的方位角。

type GeoPoint struct {
    Longitude float64
    Latitude  float64
}

findEndPoint(lon float64,lat float64,azimuth float64,distance float64) GeoPoint {
    b := distance / 6371.0

    a := math.Acos(math.Cos(b)*math.Cos(convertToRadians(90-lat)) + math.Sin(convertToRadians(90-lat))*math.Sin(b)*math.Cos(convertToRadians(azimuth)))
    B := math.Asin(math.Sin(b) * math.Sin(convertToRadians(azimuth)) / math.Sin(a))

    lat2 := 90 - convertToDegrees(a)
    lon2 := convertToDegrees(B) + lon

    return GeoPoint{lon2,lat2}
}

point1 := findEndPoint(lon,lat,azimuth-(beamWidth/2),distance)
point2 := findEndPoint(lon,azimuth+(beamWidth/2),distance)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。