- GetCoordinateDistrictCode

This commit is contained in:
gazebo
2018-11-01 14:54:21 +08:00
parent b99459b97f
commit ba1923f313
2 changed files with 31 additions and 0 deletions

View File

@@ -145,3 +145,18 @@ func (a *API) CoordinateConvert(lng, lat float64, coordsys string) (retLng, retL
}
return lng, lat, err
}
func (a *API) GetCoordinateDistrictCode(lng, lat float64) (districtCode int) {
params := map[string]interface{}{
"location": fmt.Sprintf("%.6f,%.6f", lng, lat),
}
result, err := a.AccessAPI("geocode/regeo", params)
// baseapi.SugarLogger.Debug(utils.Format4Output(result, false))
if err == nil {
addressComponent := result["regeocode"].(map[string]interface{})["addressComponent"].(map[string]interface{})
if strAdcode, ok := addressComponent["adcode"].(string); ok {
districtCode = int(utils.Str2Int64WithDefault(strAdcode, 0))
}
}
return districtCode
}

View File

@@ -35,3 +35,19 @@ func TestCoordinateConvert(t *testing.T) {
}
}
}
func TestGetCoordinateCodes(t *testing.T) {
// districtCode := autonaviAPI.GetCoordinateDistrictCode(119.40695, 32.38755)
districtCode := autonaviAPI.GetCoordinateDistrictCode(104.053567, 30.576072)
if districtCode != 510107 {
t.Fatalf("TestGetCoordinateCodes failed")
} else {
t.Log(districtCode)
}
districtCode = autonaviAPI.GetCoordinateDistrictCode(0, 0)
if districtCode != 0 {
t.Fatalf("TestGetCoordinateCodes failed")
} else {
t.Log(districtCode)
}
}