Files
baseapi/platformapi/tencent_map/tencent_model.go
2024-07-31 11:08:32 +08:00

203 lines
9.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package tencent_map
import "encoding/json"
//#region 坐标转换参数
// TencentCoordinateChangeReq 坐标转换请求参数
type TencentCoordinateChangeReq struct {
Key string `json:"key" binding:"required"` // 开发秘钥
Locations string `json:"locations" binding:"required"` // 预转换的坐标,支持批量转换, 格式:纬度前,经度后,纬度和经度之间用",“分隔,每组坐标之间使用”;"分隔; 批量支持坐标个数以HTTP GET方法请求上限为准
Type int `json:"type" binding:"required"` // 输入的locations的坐标类型可选值 1 GPS坐标2 sogou经纬度3 baidu经纬度4 mapbar经纬度6 sogou墨卡托
//Output string `json:"output"` // 返回格式支持JSON/JSONP默认JSON
}
// TencentCoordinateChangeRes 坐标转换返回参数
type TencentCoordinateChangeRes struct {
Status int64 `json:"status"` //状态码0为正常其它为异常详细请参阅状态码说明
Message string `json:"message"` // 对status的描述
Locations []*LocationsCoordinate `json:"locations"` // 坐标列
}
type LocationsCoordinate struct {
Lat json.Number `json:"lat"` // 纬度
Lng json.Number `json:"lng"` // 经度
}
type LocationsCoordinateObj struct {
Lat string `json:"lat"` // 纬度
Lng string `json:"lng"` // 经度
}
//#endregion
//#region 获取腾讯骑行计划
// TencentCyclingPlanningReq 获取骑行计划参数
type TencentCyclingPlanningReq struct {
Key string `json:"key" binding:"required"` // 开发秘钥
From string `json:"from" binding:"required"` // 起点位置坐标,纬度在前,经度在后 from=39.915285,116.403857
To string `json:"to" binding:"required"` // 终点位置坐标,纬度在前,经度在后 from=39.915285,116.403857
}
// TencentCyclingPlanningRes 获取骑行计划返回值
type TencentCyclingPlanningRes struct {
Status int64 `json:"status"` //状态码0为正常其它为异常详细请参阅状态码说明
Message string `json:"message"` // 对status的描述
Result map[string][]*Routers `json:"result"` // 搜索结果
}
// Routers 骑行计划详细返回值
type Routers struct {
Mode string `json:"mode"` // 方案交通方式固定值“EBICYCLING”
Distance int64 `json:"distance"` // 方案整体距离,单位:米
Duration int64 `json:"duration"` // 方案估算时间,单位:分钟
Direction string `json:"direction"` // 方案整体方向
Polyline []json.Number `json:"polyline"` // 方案路线坐标点串
Steps interface{} `json:"steps"` // 路线步骤
}
//#endregion
//#region 地址转坐标解析
// AddressGeoCoderChangeRes 地址转坐标解析返回参数
type AddressGeoCoderChangeRes struct {
Status int64 `json:"status"` //状态码0为正常其它为异常详细请参阅状态码说明
Message string `json:"message"` // 对status的描述
Result *ResultDetail `json:"result"` // 搜索结果
}
type ResultDetail struct {
Title string `json:"title"` // 废弃
Location LocationsCoordinate `json:"location"` // 解析到的坐标
AddressComponents struct {
Province string `json:"province"` // 省
City string `json:"city"` // 市
District string `json:"district"` // 区
Street string `json:"street"` // 街道
StreetNumber string `json:"street_number"` // 门派
} `json:"address_components"` // 解析后地址部件
AdInfo struct {
AdCode string `json:"adcode"` // 行政区划代码
} `json:"ad_info"` // 行政区划
Similarity json.Number `json:"similarity"` // 下线
Deviation json.Number `json:"deviation"` // 下线
Reliability json.Number `json:"reliability"` // 可信度参考:值范围 1 <低可信> - 10 <高可信>我们根据用户输入地址的准确程度,在解析过程中,将解析结果的可信度(质量)由低到高分为1 - 10级该值>=7时解析结果较为准确<7时会存各类不可靠因
Level json.Number `json:"level"` // 解析精度级别分为11个级别一般>=9即可采用定位到点精度较高 也可根据实际业务需求自行调
}
//#endregion
//#region 坐标转地址
type Codes2AddressRes struct {
Status int `json:"status"`
Message string `json:"message"`
RequestId string `json:"request_id"`
Result Code2AddressResultDetail `json:"result"`
}
type Code2AddressResultDetail struct {
Address string `json:"address"` // 以行政区划+道路+门牌号等信息组成的标准格式化地址
FormattedAddresses struct {
Recommend string `json:"recommend"` // 推荐使用的地址描述,描述精确性较高
Rough string `json:"rough"` // 粗略位置描述
StandardAddress string `json:"standard_address"` // address
} `json:"formatted_addresses"` // 结合知名地点形成的描述性地址,更具人性化特点
AddressComponent struct {
Nation string `json:"nation"` // 国家
Province string `json:"province"` // 省
City string `json:"city"` // 市如果当前城市为省直辖县级区划city与district字段均会返回此城市
District string `json:"district"` // 区
Street string `json:"street"` // 道路
StreetNumber string `json:"street_number"` // 门牌
} `json:"address_component"` // 地址部件address不满足需求时可自行拼接
AdInfo struct {
NationCode string `json:"nation_code"` // 国家代码
Adcode string `json:"adcode"` // 行政区划代码
PhoneAreaCode string `json:"phone_area_code"` //
CityCode string `json:"city_code"` // 城市代码
Name string `json:"name"` // 行政区划名称
Location LocationsCoordinate `json:"location"` //
Nation string `json:"nation"` // 国家
Province string `json:"province"` // 省 / 直辖市
City string `json:"city"` // 市
District string `json:"district"` // 区
Distance int `json:"_distance"`
} `json:"ad_info"` // 行政区划信息
AddressReference interface{} `json:"address_reference"` // 坐标相对位置参考,暂时忽略掉
PoiCount int `json:"poi_count"` // 查询的周边poi的总数仅在传入参数get_poi=1时返回
Pois []struct {
Id string `json:"id"` // 地点POI唯一标识
Title string `json:"title"` // 名称
Address string `json:"address"` // 地址
Category string `json:"category"` // 地点信息分类
Location LocationsCoordinate `json:"location"`
AdInfo struct {
Adcode string `json:"adcode"` // 行政区划代码
Province string `json:"province"` // 省
City string `json:"city"` //市
District string `json:"district"` // 区
} `json:"ad_info"` // 行政区划信息
Distance float64 `json:"_distance"` // 该POI/AOI到逆地址解析传入的坐标的直线距离
DirDesc string `json:"_dir_desc,omitempty"` // 该POI/AOI在逆地址解析传入的坐标的相对方位描述包括东、东南、南、西南、西、西北、北、东北、内输入经纬度在AOI范围内
} `json:"pois"`
Location LocationsCoordinate `json:"location"`
}
//#endregion
//#region 行政区划获取
// AdministrativeDivision 获取全国的行政区划
//type AdministrativeDivision struct {
// Status int `json:"status"`
// Message string `json:"message"`
// RequestId string `json:"request_id"`
// DataVersion string `json:"data_version"` // 行政区划数据版本,便于您判断更新
// Result []*DistrictsList `json:"result"` // 全国行政区划
//}
//
//type DistrictsList struct {
// Id string `json:"id"` // 行政区划唯一标识adcode
// Name string `json:"name"` // 简称
// Level int `json:"level"` // 行政区划级别
// FullMame string `json:"fullname"` // 全称
// Pinyin []string `json:"pinyin"` // 拼音
// Location LocationsCoordinate `json:"location"` // 坐标
// DistrictsList []*DistrictsList `json:"districts"`
//}
// DistrictGetChildren 获取指定城市行政区划
type DistrictGetChildren struct {
Status int `json:"status"`
Message string `json:"message"`
RequestId string `json:"request_id"`
DataVersion string `json:"data_version"`
Result [][]struct {
Id string `json:"id"`
Name string `json:"name"`
Fullname string `json:"fullname"`
Pinyin []string `json:"pinyin"`
Location LocationsCoordinate `json:"location"`
} `json:"result"`
}
type District struct {
Adcode string `json:"adcode"` // 国家行政编码
Lng float64 `json:"lng"`
Lat float64 `json:"lat"`
CityCode string `json:"citycode"` // 电话区号
Level int `json:"level"`
Name string `json:"name"`
Districts []*District `json:"districts"`
}
//#endregion
type Coordinate struct {
Lng float64 `json:"lng"`
Lat float64 `json:"lat"`
}