mirror of
https://github.com/supanadit/geo-smart-system.git
synced 2024-11-21 16:16:22 +00:00
Some Change
This commit is contained in:
parent
a5a5e459bd
commit
7673cf3425
44
main.go
44
main.go
@ -1,12 +1,14 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/gin-contrib/cors"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-redis/redis"
|
||||
socketio "github.com/googollee/go-socket.io"
|
||||
"github.com/supanadit/geosmartsystem/model"
|
||||
"github.com/supanadit/geosmartsystem/model/tile38"
|
||||
"log"
|
||||
)
|
||||
|
||||
@ -17,17 +19,18 @@ func main() {
|
||||
})
|
||||
|
||||
router := gin.Default()
|
||||
router.Use(cors.New(cors.Config{
|
||||
AllowOrigins: []string{"http://localhost:4200"},
|
||||
AllowMethods: []string{"PUT", "PATCH", "POST", "GET"},
|
||||
AllowHeaders: []string{"Origin"},
|
||||
ExposeHeaders: []string{"Content-Length"},
|
||||
AllowWebSockets: true,
|
||||
AllowCredentials: true,
|
||||
AllowWildcard: true,
|
||||
}))
|
||||
router.GET("/point", func(c *gin.Context) {
|
||||
data, _ := model.FromScan(client, "sales")
|
||||
//router.Use(cors.New(cors.Config{
|
||||
// AllowOrigins: []string{"http://localhost:4200"},
|
||||
// AllowMethods: []string{"PUT", "PATCH", "POST", "GET"},
|
||||
// AllowHeaders: []string{"Origin"},
|
||||
// ExposeHeaders: []string{"Content-Length"},
|
||||
// AllowWebSockets: true,
|
||||
// AllowCredentials: true,
|
||||
// AllowWildcard: true,
|
||||
//}))
|
||||
router.Use(cors.Default())
|
||||
router.GET("/points", func(c *gin.Context) {
|
||||
data, _ := tile38.FromScan(client, "sales")
|
||||
c.JSON(200, data)
|
||||
})
|
||||
// Socket.IO Start
|
||||
@ -38,10 +41,25 @@ func main() {
|
||||
server.OnConnect("/", func(s socketio.Conn) error {
|
||||
s.SetContext("")
|
||||
fmt.Println("Connected:", s.ID())
|
||||
data, _ := tile38.FromScan(client, "sales")
|
||||
s.Emit("points", data)
|
||||
return nil
|
||||
})
|
||||
server.OnEvent("/", "message", func(s socketio.Conn, msg string) {
|
||||
s.Emit("message", "have "+msg)
|
||||
server.OnEvent("/", "set-points", func(s socketio.Conn, msg string) {
|
||||
var location model.Location
|
||||
err = json.Unmarshal([]byte(msg), &location)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
fmt.Println(location)
|
||||
data, err := tile38.GetDataLocation(client, "sales", location.Id)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
fmt.Println(data)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
server.OnEvent("/", "bye", func(s socketio.Conn) string {
|
||||
last := s.Context().(string)
|
||||
|
8
model/Location.go
Normal file
8
model/Location.go
Normal file
@ -0,0 +1,8 @@
|
||||
package model
|
||||
|
||||
type Location struct {
|
||||
Id string `json:"id"`
|
||||
Type string `json:"type"`
|
||||
Lat string `json:"lat"`
|
||||
Lng string `json:"lng"`
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package model
|
||||
package tile38
|
||||
|
||||
import (
|
||||
"encoding/json"
|
@ -1,4 +1,4 @@
|
||||
package model
|
||||
package tile38
|
||||
|
||||
type Tile38Object struct {
|
||||
Id string `json:"id"`
|
48
model/tile38/tile38subobject.go
Normal file
48
model/tile38/tile38subobject.go
Normal file
@ -0,0 +1,48 @@
|
||||
package tile38
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/go-redis/redis"
|
||||
"github.com/supanadit/geosmartsystem/model"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Tile38SubObject struct {
|
||||
Type string `json:"type"`
|
||||
Coordinates []float64 `json:"coordinates"`
|
||||
}
|
||||
|
||||
func (tile38SubObject Tile38SubObject) Lng() float64 {
|
||||
return tile38SubObject.Coordinates[0]
|
||||
}
|
||||
|
||||
func (tile38SubObject Tile38SubObject) Lat() float64 {
|
||||
return tile38SubObject.Coordinates[1]
|
||||
}
|
||||
|
||||
func FromLocation(location model.Location) Tile38SubObject {
|
||||
var tile38SubObject Tile38SubObject
|
||||
tile38SubObject.Type = "Point"
|
||||
lng, _ := strconv.ParseFloat(location.Lng, 64)
|
||||
lat, _ := strconv.ParseFloat(location.Lat, 64)
|
||||
tile38SubObject.Coordinates = []float64{
|
||||
lng,
|
||||
lat,
|
||||
}
|
||||
return tile38SubObject
|
||||
}
|
||||
|
||||
func GetDataLocation(client *redis.Client, typeLocation string, id string) (Tile38Object, error) {
|
||||
var tile38Object Tile38Object
|
||||
var err error
|
||||
data, err := client.Do("GET", typeLocation, id).Result()
|
||||
if err == nil {
|
||||
dataMarshal, err := json.Marshal(data)
|
||||
if err == nil {
|
||||
fmt.Println(string(dataMarshal))
|
||||
err = json.Unmarshal(dataMarshal, &tile38Object)
|
||||
}
|
||||
}
|
||||
return tile38Object, err
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package model
|
||||
|
||||
type Tile38SubObject struct {
|
||||
Type string `json:"type"`
|
||||
Coordinates []float64 `json:"coordinates"`
|
||||
}
|
||||
|
||||
func (tile38SubObject Tile38SubObject) Lng() float64 {
|
||||
return tile38SubObject.Coordinates[0]
|
||||
}
|
||||
|
||||
func (tile38SubObject Tile38SubObject) Lat() float64 {
|
||||
return tile38SubObject.Coordinates[1]
|
||||
}
|
Loading…
Reference in New Issue
Block a user