nidus-sync/htmlpage/h3.go

40 lines
784 B
Go
Raw Permalink Normal View History

package htmlpage
import (
"fmt"
"strings"
"github.com/uber/h3-go/v4"
)
func gisStatement(cb h3.CellBoundary) string {
var content strings.Builder
for i, p := range cb {
if i != 0 {
content.WriteString(", ")
}
content.WriteString(fmt.Sprintf("%f %f", p.Lng, p.Lat))
}
// Repeat the first coordinate to close the polygon
content.WriteString(fmt.Sprintf(", %f %f", cb[0].Lng, cb[0].Lat))
return fmt.Sprintf("ST_GeomFromText('POLYGON((%s))', 3857)", content.String())
}
func latLngDisplay(ll h3.LatLng) string {
latDir := "N"
latVal := ll.Lat
if ll.Lat < 0 {
latDir = "S"
latVal = -ll.Lat
}
lngDir := "E"
lngVal := ll.Lng
if ll.Lng < 0 {
lngDir = "W"
lngVal = -ll.Lng
}
return fmt.Sprintf("%.4f° %s, %.4f° %s", latVal, latDir, lngVal, lngDir)
}