- autonavi.GetCoordinateDistrictCode will return fake district code when the city has no district.
This commit is contained in:
@@ -41,6 +41,10 @@ const (
|
||||
CoordSysBaidu = "baidu"
|
||||
)
|
||||
|
||||
const (
|
||||
FakeDistrictPadding = 9000000
|
||||
)
|
||||
|
||||
var (
|
||||
exceedLimitCodes = map[string]int{
|
||||
InfoCode_ACCESS_TOO_FREQUENT: 1,
|
||||
@@ -164,6 +168,7 @@ func (a *API) CoordinateConvert(lng, lat float64, coordsys string) (retLng, retL
|
||||
return lng, lat, err
|
||||
}
|
||||
|
||||
// 有些市是没有区的,比如东莞,这种情况下返回的区码是一个假的区域,即市的编码加上9000000
|
||||
func (a *API) GetCoordinateDistrictCode(lng, lat float64) (districtCode int) {
|
||||
params := map[string]interface{}{
|
||||
"location": fmt.Sprintf("%.6f,%.6f", lng, lat),
|
||||
@@ -174,6 +179,9 @@ func (a *API) GetCoordinateDistrictCode(lng, lat float64) (districtCode int) {
|
||||
addressComponent := result["regeocode"].(map[string]interface{})["addressComponent"].(map[string]interface{})
|
||||
if strAdcode, ok := addressComponent["adcode"].(string); ok {
|
||||
districtCode = int(utils.Str2Int64WithDefault(strAdcode, 0))
|
||||
if _, ok := addressComponent["district"].(string); !ok {
|
||||
districtCode += FakeDistrictPadding
|
||||
}
|
||||
}
|
||||
}
|
||||
return districtCode
|
||||
|
||||
Reference in New Issue
Block a user