【问题标题】:how to calculate geo cordinates of sector points given center and azimuth如何计算给定中心和方位角的扇区点的坐标
【发布时间】:2021-08-30 19:22:31
【问题描述】:
【问题讨论】:
标签:
geolocation
geometry
geo
【解决方案1】:
以下应该为您提供所需的端点。我参考了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, lat, azimuth+(beamWidth/2), distance)