确定中心点与半径,因为无法去确定圆形的每个点,只能用圆都外接正方形添加点来获取
// 地球半径(单位:米)
R = 6371000
// 中心点的经纬度
centerLat = 圆心纬度
centerLng = 圆心经度
// 固定半径大小
radius = 固定半径大小
// 计算每一度的弧长(单位:米)
degree = (2 * Math.PI * R) / 360
// 计算纬度半径度数
latR = radius / degree
// 计算经度半径度数
lngR = radius / (degree * Math.cos((Math.PI / 180) * centerLat))
// 计算正方形四个顶点的经纬度坐标
topLeftLat = centerLat + latR
topLeftLng = centerLng - lngR
bottomRightLat = centerLat - latR
bottomRightLng = centerLng + lngR
// 定义插值点数
pointsCount = 100
// 计算正方形顶点间距离
dLat = (topLeftLat - bottomRightLat) / (pointsCount - 1)
dLng = (bottomRightLng - topLeftLng) / (pointsCount - 1)
// 插值计算经纬度坐标
for (var i = 0; i < pointsCount; i++) {
lat = topLeftLat - i * dLat
for (var j = 0; j < pointsCount; j++) {
lng = topLeftLng + j * dLng
// 这里的(lat,lng)即为圆形围栏周边的经纬度点
console.log(lat, lng)
}
}
会有一定误差