https://restapi.amap.com/v3/config/district&address=你的条件&key=自己高德地图的生成的key 大家可以去高德地区看其他实例 高德开放平台 | 高德地图API (amap.com)
高德地图返回给我们的数据
看到这个的数据是时候 头都大了 层级嵌套这么深
不要慌 让我们一步一步拿到我们想要的一个数据
第一步: 获取高德地区开放平台提供给我们的接口 获取数据 (这里我使用的是gin框架实现的这段代码)
```
//拼接url (这里的key 可不能给你们看 大家去高德地区成为开发者 创建自己的key) cityUrl := fmt.Sprintf("https://restapi.amap.com/v3/conf //发送请求 (获取生成的高德地区地址里面的信息) CityResp, err := http.Get(cityUrl) if err != nil { return "", err } defer CityResp.Body.Close() //接收的cityUrl 的数据 (放入我们定义的map中) var CityData = make(map[string]interface{}) err = json.NewDecoder(CityResp.Body).Decode(&CityData)
```
第二步: 通过高德地区返回给我们的url地址 我们就可以看到层级关系 (也就是第一张图片) 那么我们就要开始一步一步的开始拿到我们想要的数据了
//定义新的切片 用来接收我们获取的数据信息if outerDistricts, ok := CityData["districts"].([]interface{}); ok && len(outerDistricts) > 0 { // 外层districts的第一个元素应该是一个map if firstOuterDistrict, ok := outerDistricts[0].(map[string]interface{}); ok { // 提取内层districts数组 if innerDistricts, ok := firstOuterDistrict["districts"].([]interface{}); ok { // 遍历内层districts数组以获取所有省份的名称 for _, innerDistrict := range innerDistricts { if districtMap, ok := innerDistrict.(map[string]interface{}); ok { if level, ok := districtMap["level"].(string); ok && level == "province" { // 确保我们有一个name字段 if name, ok := districtMap["name"].(string); ok { CityNames = append(CityNames, name) } } } } } }
相信大家看到这段代码 写下去的欲望就没有了, 但是我们身为程序员就要对有难度的问题进行挑战,当然就这么一点点问题肯定难不到各位精英
这样我们就能获取到我们想要的信息啦
大家也可以通过这种方式获取一些自己想要信息 冲呀!!!