✨ add face recognition
This commit is contained in:
82
common/gao_map/place.go
Normal file
82
common/gao_map/place.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package gao_map
|
||||
|
||||
import (
|
||||
"github.com/duke-git/lancet/v2/condition"
|
||||
"github.com/duke-git/lancet/v2/convertor"
|
||||
"github.com/duke-git/lancet/v2/netutil"
|
||||
"github.com/duke-git/lancet/v2/strutil"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
const placeUrl = "https://restapi.amap.com/v5/place/text" //驾车
|
||||
|
||||
type Place struct {
|
||||
client *AmapClient
|
||||
}
|
||||
|
||||
type PlaceRequest struct {
|
||||
Keywords string
|
||||
Types string
|
||||
Region string
|
||||
CityLimit bool
|
||||
PageSize int
|
||||
PageNum int
|
||||
ShowFields string
|
||||
}
|
||||
|
||||
type PlaceResponse struct {
|
||||
Response
|
||||
|
||||
Count int `json:"count,string"`
|
||||
Pois []struct {
|
||||
Address string `json:"address"`
|
||||
Adcode string `json:"adcode"`
|
||||
Type string `json:"type"`
|
||||
Typecode string `json:"typecode"`
|
||||
CityCode string `json:"citycode"`
|
||||
Name string `json:"name"`
|
||||
Location string `json:"location"`
|
||||
Id string `json:"id"`
|
||||
Business struct {
|
||||
Tel string `json:"tel"`
|
||||
Cost string `json:"cost"`
|
||||
Tag string `json:"tag"`
|
||||
OpentimeToday string `json:"opentime_today"`
|
||||
OpentimeWeek string `json:"opentime_week"`
|
||||
} `json:"business"`
|
||||
Photos []struct {
|
||||
Title string `json:"title"`
|
||||
Url string `json:"url"`
|
||||
} `json:"photos"`
|
||||
} `json:"pois"`
|
||||
}
|
||||
|
||||
func (d *Place) Search(request *PlaceRequest) (*PlaceResponse, error) {
|
||||
val := url.Values{}
|
||||
val.Set("keywords", request.Keywords)
|
||||
val.Set("types", request.Types)
|
||||
if !strutil.IsBlank(request.Region) {
|
||||
val.Set("region", request.Region)
|
||||
}
|
||||
val.Set("city_limit", condition.TernaryOperator(request.CityLimit, "1", "0"))
|
||||
val.Set("page_size", convertor.ToString(condition.TernaryOperator(request.PageSize > 0, request.PageSize, 25)))
|
||||
val.Set("page_num", convertor.ToString(condition.TernaryOperator(request.PageNum > 0, request.PageNum, 1)))
|
||||
if !strutil.IsBlank(request.ShowFields) {
|
||||
val.Set("show_fields", request.ShowFields)
|
||||
}
|
||||
|
||||
resp, err := d.client.DoRequest(placeUrl, "GET", val)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var data PlaceResponse
|
||||
|
||||
if err = netutil.ParseHttpResponse(resp, &data); err != nil {
|
||||
return nil, err
|
||||
} else if err = checkResponse(data.Response); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &data, err
|
||||
}
|
Reference in New Issue
Block a user