- ebai store.

This commit is contained in:
gazebo
2018-09-19 23:00:47 +08:00
parent 3ddcf2f82c
commit f874c37d14
3 changed files with 84 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ package jxutils
import (
"fmt"
"math"
"strings"
"time"
@@ -64,3 +65,28 @@ func StrTime2JxOperationTime(strTime string, defValue int16) int16 {
func JxOperationTime2StrTime(value int16) string {
return fmt.Sprintf("%02d:%02d:00", value/100, value%100)
}
func GetPolygonFromCircle(lng, lat, distance float64, pointCount int) (points [][2]float64) {
points = make([][2]float64, pointCount)
for k := range points {
angle := float64(k) * 360 / float64(pointCount)
points[k][0], points[k][1] = ConvertDistanceToLogLat(lng, lat, float64(distance), angle)
}
return points
}
func GetPolygonFromCircleStr(lng, lat, distance float64, pointCount int) string {
points := GetPolygonFromCircle(lng, lat, distance, pointCount)
points2 := make([]string, len(points))
for k, v := range points {
points2[k] = fmt.Sprintf("%.6f,%.6f", v[0], v[1])
}
return strings.Join(points2, ";")
}
func ConvertDistanceToLogLat(lng, lat, distance, angle float64) (newLng, newLat float64) {
oneDu := 111319.55
newLng = lng + (distance*math.Sin(angle*math.Pi/180))/(oneDu*math.Cos(lat*math.Pi/180)) //将距离转换成经度的计算公式
newLat = lat + (distance*math.Cos(angle*math.Pi/180))/oneDu //将距离转换成纬度的计算公式
return newLng, newLat
}