电商有个困扰是发货的时候,对方提供的地址在省市区部分有缺失,自己要查找起来很麻烦。有没有一个方法能直接获取到一个地址的省市区呢?
比较极限的例子就是没有任何省市区,只有一个地名。比如输入深圳北站,返回广东省、深圳市、龙华区。
我猜测地图API应该可以实现。就问了Gemini。回答的答案居然一次性运行成功,没有编码错误。牛!
我用了高德的API,进驻高德开放平台,创建一个应用即可。而且获取省市区的API只需要KEY就行,没有复杂的鉴权过程。属于“地里编码”类型,每日调用限额5000次。

Gemini回答

以下 API 能够根据地址字符串返回省、市、区:

API 使用方法

高德地图开放平台

GET https://restapi.amap.com/v3/geocode/geo?address=深圳北站&key={{高德地图API Key}}

百度地图开放平台

GET https://api.map.baidu.com/geocoding/v3/?address=深圳北站&output=json&ak={{百度地图API Key}}

API 返回数据示例

高德地图开放平台

{
  "count": 1,
  "info": "OK",
  "infocode": "10000",
  "geocodes": [
    {
      "formatted_address": "广东省深圳市龙华区梅林街道龙胜社区万丰路一号",
      "adcode": "440306",
      "country": "中国",
      "province": "广东省",
      "city": "深圳市",
      "district": "龙华区",
      "township": "梅林街道"
    }
  ]
}

百度地图开放平台

{
  "status": "OK",
  "result": {
    "address": "深圳北站东广场",
    "location": {
      "lat": 22.60116700193512,
      "lng": 114.06170188547761
    },
    "precise": 1,
    "confidence": 70,
    "level": "地铁站",
    "formatted_address": "广东省深圳市龙华区梅林街道龙胜社区万丰路一号(近深圳北站东广场)",
    "business": [],
    "poiRegions": [],
    "semg": [],
    "adname": "广东省深圳市龙华区"
  }
}

示例代码

Python 示例(基于高德地图开放平台)

import requests

def get_address_info(address_string):
    url = "https://restapi.amap.com/v3/geocode/geo"
    params = {
        "address": address_string,
        "key": "YOUR_GAODE_API_KEY"  # 替换为你的高德地图 API Key
    }
    response = requests.get(url, params=params)
    data = response.json()
    if data["info"] == "OK":
        return data["geocodes"][0]["province"], data["geocodes"][0]["city"], data["geocodes"][0]["district"]
    else:
        return None

address_info = get_address_info("深圳北站")
print(address_info)  # 输出:('广东省', '深圳市', '龙华区')

标签: none 阅读量: 1726

添加新评论