行政区三级查询
省/市/区/县三级联动
行政区划统计 · 中国 2026
行政等级分类
主要城市历史沿革
七大地理大区分布
· 华东 / 中南面积小但人口密集,西北 / 西南地广人稀;港澳台单列以体现"一国两制"与统一原则
港澳台特别说明
省级邮政编码速查
· 港澳台不参与大陆邮编体系,国际信件需按各自规范处理
典型应用场景
常见问题
为什么有些地级市看不到下属区县?
为什么东莞、中山等城市没有区?
新疆生产建设兵团(XPCC)算什么级别?
区划代码会变更吗?多久更新一次?
身份证地址码与户籍地为何不一致?
"省 - 市 - 县 - 乡 - 村"和"省 - 市 - 区/县"有何区别?
港澳台代码使用注意
能否导出全省/全市数据用于业务?
GB/T 2260 代码规则
· 6 位代码组成:前 2 位 = 省级,中 2 位 = 地市级,后 2 位 = 县区级
· 直辖市(北京 11 / 天津 12 / 上海 31 / 重庆 50):中 2 位固定 01(市辖区集合),后 2 位 = 具体辖区
· 区县后 2 位:01~20 多为市辖区,21~80 多为县,81~99 多为县级市
· 特殊编码:71 = 中国台湾,81 = 香港,82 = 澳门
· 示例:110101 = 北京·东城区 · 310115 = 上海·浦东新区 · 440106 = 广州·天河区 · 500103 = 重庆·渝中区
· 维护机构:标准由国家市场监督管理总局发布,行政区划由民政部年度更新
关于本工具
了解工具定位 · 使用场景 · 对比优势
使用场景
电商收货地址
电商运营或物流人员需批量录入客户地址,但用户手写的地址常缺省/市/区信息。本工具提供省市区三级联动选择,选完省自动筛出下属市,选完市自动筛出下属区/县,确保地址格式标准、无错漏,减少退单和配送延误。
企业区域报表
销售或数据分析师需按省/市/区汇总门店或客户数据,但原始数据中地址字段混乱(如“北京”有时填“北京市”有时填“北京”)。本工具通过三级联动标准化地址,将自由文本转为固定编码级次,便于后续按行政层级统计、做透视表或地图热力图。
政务表单填写
办理社保、户籍或税务业务时,系统要求精确到区/县的行政区划代码。本工具在表单中嵌入三级联动选择器,用户选完省/市/区后自动填充对应代码,避免手动翻查《行政区划代码表》或填错数字导致业务退回。
App 注册地址
社交、外卖或本地生活类 App 需获取用户所在城市以推荐附近内容,但 GPS 定位可能不准确或用户拒绝授权。本工具提供手动三级地址选择,用户选到区/县级即可完成绑定,比输入框更快速、比定位更可靠。
房产中介筛选
买房或租房者想限定“海淀区”或“朝阳区”内的小区,但房产平台上的筛选器有时只到市一级。本工具的三级联动可精确到区/县,中介或用户借此快速过滤出目标行政区域内的房源,避免跨区推荐带来的无效沟通。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 | 竞品 A(阿里云 DataV.GeoAtlas) | 传统方法(手动查表) |
|---|---|---|---|
| 数据隐私 | 纯浏览器,零上传 | 需上传坐标/区域到云端 | 依赖纸质或电子文档,无上传 |
| 处理速度 | 1 秒内返回 | 2-5 秒(含网络请求) | 数分钟至数小时(人工查阅) |
| 离线可用 | 完全离线(WASM 本地计算) | 需联网 | 完全离线(需携带资料) |
| 数据更新 | 静态内置,版本发布时更新 | 实时在线更新 | 依赖手册版本,更新滞后 |
| 使用门槛 | 无需注册,打开即用 | 需注册/登录/申请密钥 | 需熟悉行政区划代码体系 |
| 覆盖范围 | 省/市/区/县三级 | 省/市/区/县/乡镇/村 | 取决于手册版本,通常仅到县 |
| 输出格式 | 结构化 JSON/树形 | GeoJSON / API 返回 | 文本或表格,需手动整理 |
使用指南
上手步骤 · 输入输出 · 避坑提示
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 广东省 | 广东省 | 广州市 | 天河区 | 典型场景:输入省份,返回省会及默认区 |
| 浙江省 杭州市 | 浙江省 | 杭州市 | 上城区 | 典型场景:输入省市,返回默认区 |
| 北京市 | 北京市 | 东城区 | 边界 case:直辖市无省级概念,直接到区 |
| 新疆维吾尔自治区 伊犁哈萨克自治州 | 新疆维吾尔自治区 | 伊犁哈萨克自治州 | 伊宁市 | 边界 case:多级自治州嵌套,层级复杂 |
| 上海市 浦东新区 | 上海市 | 浦东新区 | 边界 case:直辖市下直接输入区名 |
| 海南省 三沙市 | 海南省 | 三沙市 | 西沙区 | 易错 case:三沙市为地级市,含特殊行政区域 |
| 台湾省 | 台湾省 | 台北市 | 中正区 | 易错 case:台湾省按现行区划返回默认市 |
| 澳门特别行政区 | 澳门特别行政区 | 花地玛堂区 | 边界 case:特别行政区无地级市,直接到堂区 |
常见错误对照7 个常踩的坑 · 错误 → 修复
1. 输入非标准行政区划名称
北京朝阳区北京市 / 朝阳区工具只识别《统计用区划代码》标准名称,非官方简称或口语化写法(如“北京朝阳区”)无法匹配,必须逐级选择或输入完整官方名称。
2. 省市区三级顺序颠倒
海淀区 / 北京市 / 中国北京市 / 海淀区三级联动依赖从省到区的层级关系,逆序输入会导致下级无法关联上级编码,工具无法正确返回结果。
3. 混用历史或已撤销的行政区划
崇文区 / 宣武区(北京)东城区 / 西城区崇文区、宣武区已于2010年撤销并入东城、西城;工具使用最新国家标准,旧区划不在数据库中。
4. 把直辖市当省再填区
上海市 / 上海市 / 黄浦区上海市 / 黄浦区直辖市(北京、上海、天津、重庆)行政层级为市→区,无中间“市”级;多填一级会导致匹配失败。
5. 省市区名称与编码混用
110000 / 110100 / 110101北京市 / 东城区工具输入字段只接受中文名称,不接受6位数字编码;编码用于后端查询,用户无需手动输入。
6. 忽略特殊行政区(自治州、地区、盟)
新疆 / 伊犁州 / 伊宁市新疆维吾尔自治区 / 伊犁哈萨克自治州 / 伊宁市部分自治州、地区(如伊犁州、大兴安岭地区)在三级联动中作为中间级存在,省略会导致无法正确匹配下级区县。
7. 输入县级市时省略地级市
江苏省 / 昆山市江苏省 / 苏州市 / 昆山市昆山是苏州代管的县级市,工具要求完整三级路径;直接省→县级市会因缺少地级市层级而匹配失败。
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
无单一数学公式,基于国家统计局《统计用区划代码和城乡划分代码》标准层级映射
变量说明
省级代码— 2 位数字,代表省/自治区/直辖市地级代码— 2 位数字,代表地级市/自治州县级代码— 2 位数字,代表区/县/县级市完整代码— 6 位数字,由省+地+县三级拼接而成
示例
查询北京市海淀区:省级代码 11(北京市),地级代码 01(市辖区),县级代码 08(海淀区),完整代码 110108。工具根据代码 110108 自动匹配显示:北京市 → 北京市 → 海淀区。
适用范围
适用于中国大陆现行行政区划查询(含省/市/区/县四级)。不适用于港澳台地区(代码体系不同),也不适用于历史行政区划查询。数据来源为国家统计局每年发布的《统计用区划代码和城乡划分代码》。
原理图
开发者集成
3 种主流语言 · 复制即用
import requests
# 调用高德地图行政区域查询API(需替换为真实key)
API_KEY = "your_amap_key"
url = "https://restapi.amap.com/v3/config/district"
# 查询省级列表
params = {"key": API_KEY, "keywords": "中国", "subdistrict": 0, "extensions": "base"}
resp = requests.get(url, params=params)
data = resp.json()
# 提取省份名称和adcode
provinces = []
if data["status"] == "1":
for district in data["districts"][0]["districts"]:
provinces.append((district["name"], district["adcode"]))
print("省级列表:", provinces[:5]) # 示例输出前5个
else:
print("请求失败:", data.get("info", ""))package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
// 行政区划响应结构
type DistrictResponse struct {
Status string `json:"status"`
Districts []District `json:"districts"`
}
type District struct {
Name string `json:"name"`
Adcode string `json:"adcode"`
Districts []District `json:"districts"`
}
func main() {
// 查询广东省下辖城市(adcode=440000)
url := "https://restapi.amap.com/v3/config/district?key=your_amap_key&keywords=440000&subdistrict=2&extensions=base"
resp, err := http.Get(url)
if err != nil {
fmt.Println("请求失败:", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var result DistrictResponse
json.Unmarshal(body, &result)
if result.Status == "1" && len(result.Districts) > 0 {
province := result.Districts[0]
fmt.Printf("省份: %s (adcode: %s)\n", province.Name, province.Adcode)
for _, city := range province.Districts {
fmt.Printf(" 城市: %s (adcode: %s)\n", city.Name, city.Adcode)
for _, district := range city.Districts {
fmt.Printf(" 区县: %s (adcode: %s)\n", district.Name, district.Adcode)
}
}
}
}// 使用fetch调用民政部行政区划API(示例:获取省级列表)
const API_BASE = 'https://www.mca.gov.cn/article/sj/xzqh/2024/2024xzqh.html';
// 实际生产环境应使用JSON接口,此处为示意结构
async function fetchProvinces() {
try {
// 假设有一个返回JSON的API端点
const response = await fetch('https://api.example.com/districts?level=province');
if (!response.ok) throw new Error('网络错误');
const data = await response.json();
// 假设返回格式: { code: 0, data: [{ name: '北京市', code: '110000' }, ...] }
if (data.code === 0) {
const provinces = data.data.map(p => ({
name: p.name,
code: p.code
}));
console.log('省级列表:', provinces.slice(0, 5));
return provinces;
}
} catch (error) {
console.error('获取省份失败:', error.message);
}
}
// 调用示例
fetchProvinces();常见问题
7 个高频疑问