UNPKG

v-region

Version:

Provide Chinese administrative division data selection

2,048 lines 338 kB
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('.v-region{display:inline-block}.v-region select{width:auto;display:inline-block;overflow:hidden;box-sizing:content-box;padding:0 12px;margin-right:5px}.rg-icon{display:inline-flex;width:1em;height:1em}.rg-icon-btn{color:#888;border-radius:5rem;transition:all .3s;height:2rem;width:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.rg-icon-btn:hover{color:#000;background-color:#f7f7f7}.rg-icon-btn.disabled{color:#ddd;background-color:unset}.rg-group{width:400px;overflow:hidden;display:flex;flex-direction:column}.rg-group .rg-header{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;margin:0;background-color:#f4f4f4}.rg-group .rg-header .rg-header-text{flex:1;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden;font-size:14px;display:inline-block;color:#666;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.rg-group .rg-header .rg-header-control{display:inline-flex}.rg-group .rg-header .rg-header-control button{padding:0;cursor:pointer;border:0;background-color:transparent;outline:none;line-height:1;color:#999;font-size:1rem;transition:all .3s ease-out}.rg-group .rg-header .rg-header-control button:hover{color:#000}.rg-group .rg-header .rg-header-control button.rg-close-button{right:10px;font-size:26px;top:0;font-weight:300}.rg-group .rg-level-tabs{padding:0 10px;background-color:#f4f4f4}.rg-group .rg-level-tabs ul{padding:0;margin:0;line-height:1.5;display:flex}.rg-group .rg-level-tabs ul li{display:inline-flex}.rg-group .rg-level-tabs ul li.active a{color:#333;background-color:#fff;border-top-left-radius:.5rem;border-top-right-radius:.5rem;box-shadow:0 3px 12px #0003}.rg-group .rg-level-tabs ul li a{display:block;padding:.5rem 1rem .3rem;font-size:14px;color:#bbb;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.43;font-family:Helvetica Neue Light,HelveticaNeue-Light,Helvetica Neue,Calibri,Helvetica,Arial;transition:all .3s ease-out}.rg-group .rg-results-container{background-color:#fff;list-style:none;margin:0;padding:0;width:100%;overflow-y:auto;overflow-x:hidden}.rg-group .rg-results-container ul.rg-results{background-color:#fff;list-style:none;margin:0;padding:10px;width:400px;line-height:1.5;display:flex;flex-wrap:wrap;gap:5px}.rg-group .rg-results-container ul.rg-results li{margin:0;overflow:hidden;padding:3px 10px;text-align:left;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:14px;color:#000;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}.rg-group .rg-results-container ul.rg-results li.rg-item{display:inline-flex;border-radius:8px;color:#777}.rg-group .rg-results-container ul.rg-results li.rg-item:hover{color:#000;background-color:#f5f5f5}.rg-group .rg-results-container ul.rg-results li.rg-item.active{background-color:#e3e3e3;color:#000}.rg-group .rg-results-container ul.rg-results li.rg-message-box{text-align:center;font-size:14px;cursor:default;color:#aaa}.rg-selects{display:flex;align-items:center;gap:5px}.rg-select__list{list-style:none;overflow-y:auto;overflow-x:hidden;max-height:300px;margin:0;padding:3px 0;-webkit-font-smoothing:subpixel-antialiased;-webkit-transform:translateZ(0) scale(1,1)}.rg-select__list li{padding:3px 10px;cursor:pointer;min-width:80px;color:#888;font-size:13px;line-height:1.5}.rg-select__list li:hover{background-color:#f5f5f5}.rg-select__list li.selected{background-color:#e3e3e3;color:#000}.rg-column-container{display:flex;overflow:hidden;box-sizing:border-box}.rg-column-container .rg-column{padding:5px 0;margin:0;list-style:none;height:300px;display:inline-flex;flex-direction:column;overflow-y:auto;min-width:160px;border-right:1px solid #ddd}.rg-column-container .rg-column:last-child{border-right:0}.rg-column-container .rg-column li{display:flex;justify-content:space-between;align-items:center;font-size:14px;line-height:1.5;padding:5px 5px 5px 10px;color:#777;outline:none}.rg-column-container .rg-column li .bi-chevron-right{font-size:.8rem}.rg-column-container .rg-column li:hover{background-color:#f5f5f5;cursor:pointer}.rg-column-container .rg-column li.selected{background-color:#e3e3e3;color:#000}.rg-city-picker{display:flex;flex-direction:column}.rg-city-picker .rg-search-bar{margin:10px;display:flex;align-items:center}.rg-city-picker .rg-search-bar .rg-search-input{display:flex;align-items:center;background-color:#f5f5f5;border-radius:5rem;flex-grow:1;margin-right:10px}.rg-city-picker .rg-search-bar .rg-search-input svg{margin:0 10px;color:#aaa}.rg-city-picker .rg-search-bar .rg-search-input input{display:block;margin:0!important;border:0;width:100%;font-size:14px;line-height:1.42;padding:6px 6px 6px 0;vertical-align:middle;box-sizing:border-box;outline:none!important;border-radius:2px;background-color:transparent}.rg-city-picker .rg-picker{display:flex;flex-direction:column;width:400px;max-height:340px;overflow-y:auto;padding:0 10px 10px;row-gap:1rem}.rg-city-picker .rg-picker .rg-picker__province .rg-picker__title{font-size:18px;margin-bottom:.3rem;color:#ccc}.rg-city-picker .rg-picker .rg-picker__province .rg-picker__body{gap:.4rem 1rem;display:flex;flex-wrap:wrap}.rg-city-picker .rg-picker .rg-picker__province .rg-picker__body .rg-picker__city{font-size:14px;color:#666;cursor:pointer}.rg-city-picker .rg-picker .rg-picker__province .rg-picker__body .rg-picker__city.selected{color:#000;font-weight:600}')),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})(); import { inject as E, defineComponent as R, ref as C, createVNode as a, computed as _, toRefs as Vt, watch as X, provide as A, withDirectives as ro, vShow as io, onUnmounted as so, onBeforeUnmount as _t, onMounted as It, Teleport as po, Transition as mo, toRef as et, mergeProps as wo, createElementBlock as lt, openBlock as ut, createElementVNode as ct, nextTick as jo, h as eo } from "vue"; (function() { try { if (typeof document < "u") { var t = document.createElement("style"); t.appendChild(document.createTextNode('.drop-down-left-enter-from,.drop-down-left-leave-to{transform:scale3d(.95,.95,1) translateZ(0);opacity:0}.drop-down-left-enter-active,.drop-down-left-leave-active{backface-visibility:hidden;will-change:opacity,transform;contain:layout style paint}.drop-down-left-enter-active{transform-origin:top right;transition-property:opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-down-left-leave-active{transform-origin:top right;transition-property:opacity,transform;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-down-right-enter-from,.drop-down-right-leave-to{transform:scale3d(.95,.95,1) translateZ(0);opacity:0}.drop-down-right-enter-active,.drop-down-right-leave-active{backface-visibility:hidden;will-change:opacity,transform;contain:layout style paint}.drop-down-right-enter-active{transform-origin:top left;transition-property:opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-down-right-leave-active{transform-origin:top left;transition-property:opacity,transform;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-up-left-enter-from,.drop-up-left-leave-to{transform:scale3d(.95,.95,1) translateZ(0);opacity:0}.drop-up-left-enter-active,.drop-up-left-leave-active{backface-visibility:hidden;will-change:opacity,transform;contain:layout style paint}.drop-up-left-enter-active{transform-origin:bottom right;transition-property:opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-up-left-leave-active{transform-origin:bottom right;transition-property:opacity,transform;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-up-right-enter-from,.drop-up-right-leave-to{transform:scale3d(.95,.95,1) translateZ(0);opacity:0}.drop-up-right-enter-active,.drop-up-right-leave-active{backface-visibility:hidden;will-change:opacity,transform;contain:layout style paint}.drop-up-right-enter-active{transform-origin:bottom left;transition-property:opacity,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.drop-up-right-leave-active{transform-origin:bottom left;transition-property:opacity,transform;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dd-trigger{display:inline-flex;box-sizing:border-box;width:-moz-fit-content;width:fit-content}.dd-trigger.dd-trigger--block{display:flex;width:auto}.dd-content-body{display:flex}.dd-content{position:absolute;top:0;left:0;-webkit-font-smoothing:subpixel-antialiased;display:inline-flex;margin:0;padding:0;max-width:80vw;box-sizing:border-box;background-color:#fff;overflow:hidden;border:1px solid #d0d0d0;box-shadow:0 9px 24px #0000002e,0 3px 6px #00000014}.dd-content.dd-no-border{border:0}.dd-rounded--small{border-radius:.25rem!important}.dd-rounded--medium{border-radius:.5rem!important}.dd-rounded--large{border-radius:.75rem!important}.dd-rounded--pill{border-radius:50rem!important}.dd-rounded--circle{border-radius:50%!important}.dd-content-rounded--small{border-radius:6px!important}.dd-content-rounded--medium{border-radius:12px!important}.dd-content-rounded--large{border-radius:18px!important}.dd-trigger-container{display:inline-block}.dd-trigger-container.dd-disabled .dd-default-trigger,.dd-trigger-container.dd-disabled:hover .dd-default-trigger{border:1px solid #eee;background-color:#eee;cursor:default;color:#aaa}.dd-trigger-container .dd-default-trigger{display:inline-flex;align-items:center;padding:.5rem 1rem;background-color:#fff;border:1px solid #ddd;border-radius:.3rem;font-size:14px;line-height:1.42857143;outline:0!important;color:#666;gap:.5rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.dd-trigger-container .dd-default-trigger:hover{border:1px solid #aaa;color:#000}.dd-trigger-container .dd-default-trigger .dd-caret-down{transition:transform .2s ease}.dd-trigger-container .dd-default-trigger.dd-opened{box-shadow:3px 2px 6px #0003;border:1px solid #666;color:#000}.dd-trigger-container .dd-default-trigger.dd-opened .dd-caret-down{transform:rotate(180deg)}.dd-trigger-container .dd-default-trigger.dd-opened:hover{border:1px solid #666}.dd-trigger-container .dd-default-trigger.dd-rounded--circle{width:38px;height:38px;padding:0;justify-content:center}.dd-caret-down{display:inline-block;width:0;height:0;border-top:4px solid;border-left:4px solid transparent;border-right:4px solid transparent;vertical-align:middle;content:""}')), document.head.appendChild(t); } } catch (o) { console.error("vite-plugin-css-injected-by-js", o); } })(); const Nt = "click", lo = "hover", uo = "contextmenu", co = 150, fo = 3e3, wt = "body", Q = "small", K = "medium", Mt = "large", go = "pill", Bt = "circle", xt = [ Q, K, Mt, go, Bt ], Ct = [Q, K, Mt], Dt = Symbol("dropdown"), zt = Symbol("internal"), At = Symbol("container"), pt = "left", vo = "center", G = "right", Tt = "up", jt = "down"; function ho(t) { return window.getComputedStyle(t).display === "none"; } function Lt(t) { const o = t.getBoundingClientRect(); return { width: t.offsetWidth, height: t.offsetHeight, top: o.top, left: o.left }; } function St(t) { if (!t) return { width: 0, height: 0, top: 0, left: 0 }; if (ho(t)) { t.style.visibility = "hidden", t.style.display = "inline-flex"; const o = Lt(t); return t.style.visibility = "visible", t.style.display = "none", o; } return Lt(t); } function yo(t) { return [ "dd-trigger", { "dd-trigger--block": t.block } ]; } function bo(t) { return `dd-rounded--${!t || !xt.includes(t) ? K : xt.find((o) => o === t)}`; } function ko(t) { return `dd-content-rounded--${!t || !Ct.includes(t) ? Q : Ct.find((o) => o === t)}`; } function Ht(t) { return { isTriggerByClick: t === Nt, isTriggerByHover: t === lo, isTriggerByContextmenu: t === uo }; } const tt = () => E(Dt, {}); function xo(t = 300) { let o; return (n) => { clearTimeout(o), o = setTimeout(n, t); }; } function Co(t, o, n, r, i, s) { const { trigger: m, gap: d } = s, { isTriggerByContextmenu: j } = Ht(m); function p(e, f, h) { i.value || (r.value.vertical = jt); const T = window.scrollY, g = document.documentElement.clientHeight, l = j ? e : f.top + T, u = j ? e : f.top + f.height + d + T, x = l - d - h.height, b = u + h.height > T + g, O = x < T; return r.value.vertical === Tt ? O && !b ? (r.value.vertical = jt, u) : x : !O && b ? (r.value.vertical = Tt, x) : u; } function c(e, f, h) { i.value || (r.value.horizontal = G); const T = window.scrollX, g = document.documentElement.clientWidth, l = j ? 0 : f.width, u = j ? e : f.left + T, x = u + l / 2 - h.width / 2, b = u + l - h.width, O = u + h.width > T + g, N = x + h.width > T + g, V = b < T, M = et(s, "align"); return M.value === vo ? (r.value.horizontal = N ? pt : G, N ? b : V ? u : x) : M.value === G ? (r.value.horizontal = V ? G : pt, V ? u : b) : (r.value.horizontal = O ? pt : G, O ? b : u); } function k() { const e = St(t.value), f = St(o.value); return { top: p(n.value.y, e, f), left: c(n.value.x, e, f) }; } return { getDirection: k }; } function To(t, o) { let n = null; const r = { root: null, rootMargin: "0px", threshold: [0.5, 0.75, 1] }, i = 1e-7, s = (p) => { const c = p[0]; Math.abs(c.intersectionRatio - 1) < i || o?.(); }; function m() { t.value && (n || (n = new IntersectionObserver(s, r)), n.observe(t.value)); } function d() { n && n.unobserve(t.value); } function j() { n && (n.disconnect(), n = null); } return _t(j), { startIntersectionObserving: m, stopIntersectionObserving: d }; } function Lo(t, o, n) { const r = C(!1), i = C(!1); let s = null; const m = () => { if (!i.value) { i.value = !0; return; } n?.(); }, d = () => { !t.value || !o.value || r.value || (s || (s = new ResizeObserver(m)), s.observe(t.value), s.observe(o.value), r.value = !0); }, j = () => { !s || !r.value || (t.value && o.value && (s.unobserve(t.value), s.unobserve(o.value)), r.value = !1, i.value = !1); }; return so(() => { s && (s.disconnect(), s = null, r.value = !1, i.value = !1); }), { startObserving: d, stopObserving: j }; } function F(t, o, n, r) { let i = null; const s = () => { i && (i.removeEventListener(o, n, r), i = null); }; return It(() => { i = typeof t == "function" ? t() : t, i?.addEventListener(o, n, r); }), _t(s), s; } function So(t, o, n, r) { const { emit: i, expose: s } = r, { disabled: m, manual: d, toggle: j } = Vt(n), p = C(!1), c = C({ x: null, y: null }), k = C({ vertical: jt, horizontal: G }), e = C(), f = C({}), h = _(() => n.animated ? `drop-${k.value.vertical}-${k.value.horizontal}` : ""), T = n.appendTo || wt, g = n.appendTo !== wt, l = xo(co), { isTriggerByClick: u, isTriggerByHover: x, isTriggerByContextmenu: b } = Ht(n.trigger), { getDirection: O } = Co(t, o, c, k, p, n), { startObserving: N, stopObserving: V } = Lo(t, o, U), { startIntersectionObserving: M, stopIntersectionObserving: Z } = To(o, U); X(p, (S) => { i("visible-change", S), S ? (document.body.addEventListener("mousedown", ht), N(), M()) : (V(), Z(), document.body.removeEventListener("mousedown", ht)); }); function W() { i("open"); } function Y() { i("opened"); } function w() { i("close"); } function v() { i("closed"); } function y() { m.value || (U(), x ? l(() => { p.value = !0; }) : p.value = !0); } function L() { m.value && !p.value || (x ? l(() => { p.value = !1; }) : p.value = !1); } const P = () => { if (j.value) return p.value ? L() : y(); p.value || y(); }; function ht(S) { if (!p.value || !t.value || !o.value) return; const no = t.value.contains(S.target), ao = o.value.contains(S.target); if (no) return b && S.button === 0 ? L() : ""; ao || L(); } function U() { const S = O(); f.value.top = `${S.top}px`, f.value.left = `${S.left}px`; } const to = (S) => { !u || d.value || (S.stopPropagation(), P()); }, yt = () => x && y(), bt = () => x && L(), oo = (S) => { !b || d.value || (S.stopPropagation(), S.preventDefault(), c.value.x = S.pageX, c.value.y = S.pageY, y()); }; u && F(() => t.value, "click", to), x && (F(() => t.value, "mouseenter", yt), F(() => t.value, "mouseleave", bt), F(() => o.value, "mouseenter", yt), F(() => o.value, "mouseleave", bt)), b && F(() => t.value, "contextmenu", oo); const kt = { disabled: _(() => m.value), visible: _(() => p.value), adjust: U, open: y, close: L, toggleVisible: P }; return A(Dt, kt), A(zt, { contentStyles: f, setContentClassGetter: (S) => { e.value = S; } }), A(At, { appendTo: T, defer: g, transitionName: h, onDropdownOpen: W, onDropdownOpened: Y, onDropdownClose: w, onDropdownClosed: v }), s({ open: y, close: L, toggleVisible: P, adjust: U, visible: p }), { visible: p, open: y, close: L, toggleVisible: P, slotData: kt, getContentClass: e, contentStyles: f }; } const ft = /* @__PURE__ */ R({ name: "DropdownTrigger", props: { rounded: { type: String, default: K } }, setup(t, { slots: o }) { const n = tt(), r = _(() => ["dd-default-trigger", { "dd-opened": n?.visible?.value }, bo(t.rounded)]), i = _(() => ({ "dd-trigger-container": !0, "dd-disabled": n?.disabled?.value })), s = () => o.default ? o.default() : "Open", m = () => t.rounded === Bt ? null : o.append ? o.append() : a("span", { class: "dd-caret-down" }, null), d = () => a("button", { type: "button", class: r.value }, [a(s, null, null), a(m, null, null)]); return () => a("div", { class: i.value }, [a(d, null, null)]); } }), Ro = /* @__PURE__ */ R({ name: "DropdownContentContainer", setup(t, { slots: o }) { const { appendTo: n, defer: r, transitionName: i, onDropdownOpen: s, onDropdownOpened: m, onDropdownClose: d, onDropdownClosed: j } = E(At, {}), p = (f, h) => { s(), setTimeout(h, 150); }, c = (f) => { m(); }, k = (f, h) => { d(), setTimeout(h, 75); }, e = (f) => { j(); }; return () => a(po, { to: n, defer: r }, { default: () => [a(mo, { name: i.value, onEnter: p, onAfterEnter: c, onLeave: k, onAfterLeave: e }, { default: () => o?.default?.() })] }); } }), Pt = /* @__PURE__ */ R({ name: "VDropdown", props: { disabled: { type: Boolean, default: !1 }, /** Content show up alignment direction */ align: { type: String, default: "left" }, /** Toggle display / close dropdown content */ toggle: { type: Boolean, default: !0 }, /** Manual control the display and hiding of dropdown */ manual: { type: Boolean, default: !1 }, /** * Trigger container display mode * - false: inline-flex * - true: flex */ block: { type: Boolean, default: !1 }, /** * Dropdown trigger method * - `click` default * - `hover` * - `contextmenu` */ trigger: { type: String, default: Nt }, animated: { type: Boolean, default: !0 }, /** The distance(px) between the trigger and the content */ gap: { type: Number, default: 5 }, /** Dropdown content append target */ appendTo: { type: [String, Object], default: wt } }, emits: ["visible-change", "open", "close", "opened", "closed"], setup(t, o) { const { slots: n } = o, r = C(), i = C(), { slotData: s, visible: m, getContentClass: d, contentStyles: j } = So(r, i, t, o), p = () => n.trigger ? n.trigger(s) : a(ft, null, null), c = () => a(Ro, null, { default: () => ro(a("div", { ref: i, style: j.value, class: d?.value?.() }, [n?.default?.(s)]), [[io, m.value]]) }); return () => a("div", { ref: r, class: yo(t) }, [a(p, null, null), a(c, null, null)]); } }), Ft = /* @__PURE__ */ R({ name: "DropdownContent", // inheritAttrs: false, props: { border: { type: Boolean, default: !0 }, rounded: { type: String, default: Q }, zIndex: { type: Number, default: fo } }, setup(t, { slots: o, attrs: n }) { const { setContentClassGetter: r, contentStyles: i } = E(zt, {}); return r?.(() => { const s = ["dd-content", ko(t.rounded)]; return t.border || s.push("dd-no-border"), s; }), () => (i && (i.value["z-index"] = t.zIndex), a("div", { class: "dd-content-body" }, [o?.default?.()])); } }), I = "province", H = "city", B = "area", $ = "town", Eo = [ { index: 0, level: I, title: "省/直辖市" }, { index: 1, level: H, title: "市" }, { index: 2, level: B, title: "区/县" }, { index: 3, level: $, title: "乡/镇/街道" } ], z = [I, H, B, $], Rt = "#others-number#", D = Symbol("core"), q = Symbol("base"), gt = Symbol("dropdown"), [ot, Oo] = ["cn", "en"], Et = { [ot]: { pleaseSelect: "请选择", defaultHead: "行政区划", clear: "清除选择的项目", noMatch: "无匹配项目", others: `与其余${Rt}个` }, [Oo]: { pleaseSelect: "Please select", defaultHead: "Region", clear: "Clear selected region", noMatch: "No matched items", others: `and ${Rt} others` } }; function nt(t) { return wo({ city: { type: Boolean, default: !0 }, area: { type: Boolean, default: !0 }, town: { type: Boolean, default: !0 }, language: { type: String, default: ot }, autoSelectFirst: { type: Boolean, default: !1 }, modelValue: { type: Object, default: void 0 } }, t); } function at(t) { return ["update:modelValue", "update:names", "change", ...t || []]; } const Vo = { 11e4: "北京市", 110101: "东城区", 110102: "西城区", 110105: "朝阳区", 110106: "丰台区", 110107: "石景山区", 110108: "海淀区", 110109: "门头沟区", 110111: "房山区", 110112: "通州区", 110113: "顺义区", 110114: "昌平区", 110115: "大兴区", 110116: "怀柔区", 110117: "平谷区", 110118: "密云区", 110119: "延庆区", 12e4: "天津市", 120101: "和平区", 120102: "河东区", 120103: "河西区", 120104: "南开区", 120105: "河北区", 120106: "红桥区", 120110: "东丽区", 120111: "西青区", 120112: "津南区", 120113: "北辰区", 120114: "武清区", 120115: "宝坻区", 120116: "滨海新区", 120117: "宁河区", 120118: "静海区", 120119: "蓟州区", 13e4: "河北省", 130100: "石家庄市", 130102: "长安区", 130104: "桥西区", 130105: "新华区", 130107: "井陉矿区", 130108: "裕华区", 130109: "藁城区", 130110: "鹿泉区", 130111: "栾城区", 130121: "井陉县", 130123: "正定县", 130125: "行唐县", 130126: "灵寿县", 130127: "高邑县", 130128: "深泽县", 130129: "赞皇县", 130130: "无极县", 130131: "平山县", 130132: "元氏县", 130133: "赵县", 130181: "辛集市", 130183: "晋州市", 130184: "新乐市", 130200: "唐山市", 130202: "路南区", 130203: "路北区", 130204: "古冶区", 130205: "开平区", 130207: "丰南区", 130208: "丰润区", 130209: "曹妃甸区", 130224: "滦南县", 130225: "乐亭县", 130227: "迁西县", 130229: "玉田县", 130281: "遵化市", 130283: "迁安市", 130284: "滦州市", 130300: "秦皇岛市", 130302: "海港区", 130303: "山海关区", 130304: "北戴河区", 130306: "抚宁区", 130321: "青龙满族自治县", 130322: "昌黎县", 130324: "卢龙县", 130400: "邯郸市", 130402: "邯山区", 130403: "丛台区", 130404: "复兴区", 130406: "峰峰矿区", 130407: "肥乡区", 130408: "永年区", 130423: "临漳县", 130424: "成安县", 130425: "大名县", 130426: "涉县", 130427: "磁县", 130430: "邱县", 130431: "鸡泽县", 130432: "广平县", 130433: "馆陶县", 130434: "魏县", 130435: "曲周县", 130481: "武安市", 130500: "邢台市", 130502: "襄都区", 130503: "信都区", 130505: "任泽区", 130506: "南和区", 130522: "临城县", 130523: "内丘县", 130524: "柏乡县", 130525: "隆尧县", 130528: "宁晋县", 130529: "巨鹿县", 130530: "新河县", 130531: "广宗县", 130532: "平乡县", 130533: "威县", 130534: "清河县", 130535: "临西县", 130581: "南宫市", 130582: "沙河市", 130600: "保定市", 130602: "竞秀区", 130606: "莲池区", 130607: "满城区", 130608: "清苑区", 130609: "徐水区", 130623: "涞水县", 130624: "阜平县", 130626: "定兴县", 130627: "唐县", 130628: "高阳县", 130629: "容城县", 130630: "涞源县", 130631: "望都县", 130632: "安新县", 130633: "易县", 130634: "曲阳县", 130635: "蠡县", 130636: "顺平县", 130637: "博野县", 130638: "雄县", 130681: "涿州市", 130682: "定州市", 130683: "安国市", 130684: "高碑店市", 130700: "张家口市", 130702: "桥东区", 130703: "桥西区", 130705: "宣化区", 130706: "下花园区", 130708: "万全区", 130709: "崇礼区", 130722: "张北县", 130723: "康保县", 130724: "沽源县", 130725: "尚义县", 130726: "蔚县", 130727: "阳原县", 130728: "怀安县", 130730: "怀来县", 130731: "涿鹿县", 130732: "赤城县", 130800: "承德市", 130802: "双桥区", 130803: "双滦区", 130804: "鹰手营子矿区", 130821: "承德县", 130822: "兴隆县", 130824: "滦平县", 130825: "隆化县", 130826: "丰宁满族自治县", 130827: "宽城满族自治县", 130828: "围场满族蒙古族自治县", 130881: "平泉市", 130900: "沧州市", 130902: "新华区", 130903: "运河区", 130921: "沧县", 130922: "青县", 130923: "东光县", 130924: "海兴县", 130925: "盐山县", 130926: "肃宁县", 130927: "南皮县", 130928: "吴桥县", 130929: "献县", 130930: "孟村回族自治县", 130981: "泊头市", 130982: "任丘市", 130983: "黄骅市", 130984: "河间市", 131e3: "廊坊市", 131002: "安次区", 131003: "广阳区", 131022: "固安县", 131023: "永清县", 131024: "香河县", 131025: "大城县", 131026: "文安县", 131028: "大厂回族自治县", 131081: "霸州市", 131082: "三河市", 131100: "衡水市", 131102: "桃城区", 131103: "冀州区", 131121: "枣强县", 131122: "武邑县", 131123: "武强县", 131124: "饶阳县", 131125: "安平县", 131126: "故城县", 131127: "景县", 131128: "阜城县", 131182: "深州市", 14e4: "山西省", 140100: "太原市", 140105: "小店区", 140106: "迎泽区", 140107: "杏花岭区", 140108: "尖草坪区", 140109: "万柏林区", 140110: "晋源区", 140121: "清徐县", 140122: "阳曲县", 140123: "娄烦县", 140181: "古交市", 140200: "大同市", 140212: "新荣区", 140213: "平城区", 140214: "云冈区", 140215: "云州区", 140221: "阳高县", 140222: "天镇县", 140223: "广灵县", 140224: "灵丘县", 140225: "浑源县", 140226: "左云县", 140300: "阳泉市", 140302: "城区", 140303: "矿区", 140311: "郊区", 140321: "平定县", 140322: "盂县", 140400: "长治市", 140403: "潞州区", 140404: "上党区", 140405: "屯留区", 140406: "潞城区", 140423: "襄垣县", 140425: "平顺县", 140426: "黎城县", 140427: "壶关县", 140428: "长子县", 140429: "武乡县", 140430: "沁县", 140431: "沁源县", 140500: "晋城市", 140502: "城区", 140521: "沁水县", 140522: "阳城县", 140524: "陵川县", 140525: "泽州县", 140581: "高平市", 140600: "朔州市", 140602: "朔城区", 140603: "平鲁区", 140621: "山阴县", 140622: "应县", 140623: "右玉县", 140681: "怀仁市", 140700: "晋中市", 140702: "榆次区", 140703: "太谷区", 140721: "榆社县", 140722: "左权县", 140723: "和顺县", 140724: "昔阳县", 140725: "寿阳县", 140727: "祁县", 140728: "平遥县", 140729: "灵石县", 140781: "介休市", 140800: "运城市", 140802: "盐湖区", 140821: "临猗县", 140822: "万荣县", 140823: "闻喜县", 140824: "稷山县", 140825: "新绛县", 140826: "绛县", 140827: "垣曲县", 140828: "夏县", 140829: "平陆县", 140830: "芮城县", 140881: "永济市", 140882: "河津市", 140900: "忻州市", 140902: "忻府区", 140921: "定襄县", 140922: "五台县", 140923: "代县", 140924: "繁峙县", 140925: "宁武县", 140926: "静乐县", 140927: "神池县", 140928: "五寨县", 140929: "岢岚县", 140930: "河曲县", 140931: "保德县", 140932: "偏关县", 140981: "原平市", 141e3: "临汾市", 141002: "尧都区", 141021: "曲沃县", 141022: "翼城县", 141023: "襄汾县", 141024: "洪洞县", 141025: "古县", 141026: "安泽县", 141027: "浮山县", 141028: "吉县", 141029: "乡宁县", 141030: "大宁县", 141031: "隰县", 141032: "永和县", 141033: "蒲县", 141034: "汾西县", 141081: "侯马市", 141082: "霍州市", 141100: "吕梁市", 141102: "离石区", 141121: "文水县", 141122: "交城县", 141123: "兴县", 141124: "临县", 141125: "柳林县", 141126: "石楼县", 141127: "岚县", 141128: "方山县", 141129: "中阳县", 141130: "交口县", 141181: "孝义市", 141182: "汾阳市", 15e4: "内蒙古自治区", 150100: "呼和浩特市", 150102: "新城区", 150103: "回民区", 150104: "玉泉区", 150105: "赛罕区", 150121: "土默特左旗", 150122: "托克托县", 150123: "和林格尔县", 150124: "清水河县", 150125: "武川县", 150200: "包头市", 150202: "东河区", 150203: "昆都仑区", 150204: "青山区", 150205: "石拐区", 150206: "白云鄂博矿区", 150207: "九原区", 150221: "土默特右旗", 150222: "固阳县", 150223: "达尔罕茂明安联合旗", 150300: "乌海市", 150302: "海勃湾区", 150303: "海南区", 150304: "乌达区", 150400: "赤峰市", 150402: "红山区", 150403: "元宝山区", 150404: "松山区", 150421: "阿鲁科尔沁旗", 150422: "巴林左旗", 150423: "巴林右旗", 150424: "林西县", 150425: "克什克腾旗", 150426: "翁牛特旗", 150428: "喀喇沁旗", 150429: "宁城县", 150430: "敖汉旗", 150500: "通辽市", 150502: "科尔沁区", 150521: "科尔沁左翼中旗", 150522: "科尔沁左翼后旗", 150523: "开鲁县", 150524: "库伦旗", 150525: "奈曼旗", 150526: "扎鲁特旗", 150581: "霍林郭勒市", 150600: "鄂尔多斯市", 150602: "东胜区", 150603: "康巴什区", 150621: "达拉特旗", 150622: "准格尔旗", 150623: "鄂托克前旗", 150624: "鄂托克旗", 150625: "杭锦旗", 150626: "乌审旗", 150627: "伊金霍洛旗", 150700: "呼伦贝尔市", 150702: "海拉尔区", 150703: "扎赉诺尔区", 150721: "阿荣旗", 150722: "莫力达瓦达斡尔族自治旗", 150723: "鄂伦春自治旗", 150724: "鄂温克族自治旗", 150725: "陈巴尔虎旗", 150726: "新巴尔虎左旗", 150727: "新巴尔虎右旗", 150781: "满洲里市", 150782: "牙克石市", 150783: "扎兰屯市", 150784: "额尔古纳市", 150785: "根河市", 150800: "巴彦淖尔市", 150802: "临河区", 150821: "五原县", 150822: "磴口县", 150823: "乌拉特前旗", 150824: "乌拉特中旗", 150825: "乌拉特后旗", 150826: "杭锦后旗", 150900: "乌兰察布市", 150902: "集宁区", 150921: "卓资县", 150922: "化德县", 150923: "商都县", 150924: "兴和县", 150925: "凉城县", 150926: "察哈尔右翼前旗", 150927: "察哈尔右翼中旗", 150928: "察哈尔右翼后旗", 150929: "四子王旗", 150981: "丰镇市", 152200: "兴安盟", 152201: "乌兰浩特市", 152202: "阿尔山市", 152221: "科尔沁右翼前旗", 152222: "科尔沁右翼中旗", 152223: "扎赉特旗", 152224: "突泉县", 152500: "锡林郭勒盟", 152501: "二连浩特市", 152502: "锡林浩特市", 152522: "阿巴嘎旗", 152523: "苏尼特左旗", 152524: "苏尼特右旗", 152525: "东乌珠穆沁旗", 152526: "西乌珠穆沁旗", 152527: "太仆寺旗", 152528: "镶黄旗", 152529: "正镶白旗", 152530: "正蓝旗", 152531: "多伦县", 152900: "阿拉善盟", 152921: "阿拉善左旗", 152922: "阿拉善右旗", 152923: "额济纳旗", 21e4: "辽宁省", 210100: "沈阳市", 210102: "和平区", 210103: "沈河区", 210104: "大东区", 210105: "皇姑区", 210106: "铁西区", 210111: "苏家屯区", 210112: "浑南区", 210113: "沈北新区", 210114: "于洪区", 210115: "辽中区", 210123: "康平县", 210124: "法库县", 210181: "新民市", 210200: "大连市", 210202: "中山区", 210203: "西岗区", 210204: "沙河口区", 210211: "甘井子区", 210212: "旅顺口区", 210213: "金州区", 210214: "普兰店区", 210224: "长海县", 210281: "瓦房店市", 210283: "庄河市", 210300: "鞍山市", 210302: "铁东区", 210303: "铁西区", 210304: "立山区", 210311: "千山区", 210321: "台安县", 210323: "岫岩满族自治县", 210381: "海城市", 210400: "抚顺市", 210402: "新抚区", 210403: "东洲区", 210404: "望花区", 210411: "顺城区", 210421: "抚顺县", 210422: "新宾满族自治县", 210423: "清原满族自治县", 210500: "本溪市", 210502: "平山区", 210503: "溪湖区", 210504: "明山区", 210505: "南芬区", 210521: "本溪满族自治县", 210522: "桓仁满族自治县", 210600: "丹东市", 210602: "元宝区", 210603: "振兴区", 210604: "振安区", 210624: "宽甸满族自治县", 210681: "东港市", 210682: "凤城市", 210700: "锦州市", 210702: "古塔区", 210703: "凌河区", 210711: "太和区", 210726: "黑山县", 210727: "义县", 210781: "凌海市", 210782: "北镇市", 210800: "营口市", 210802: "站前区", 210803: "西市区", 210804: "鲅鱼圈区", 210811: "老边区", 210881: "盖州市", 210882: "大石桥市", 210900: "阜新市", 210902: "海州区", 210903: "新邱区", 210904: "太平区", 210905: "清河门区", 210911: "细河区", 210921: "阜新蒙古族自治县", 210922: "彰武县", 211e3: "辽阳市", 211002: "白塔区", 211003: "文圣区", 211004: "宏伟区", 211005: "弓长岭区", 211011: "太子河区", 211021: "辽阳县", 211081: "灯塔市", 211100: "盘锦市", 211102: "双台子区", 211103: "兴隆台区", 211104: "大洼区", 211122: "盘山县", 211200: "铁岭市", 211202: "银州区", 211204: "清河区", 211221: "铁岭县", 211223: "西丰县", 211224: "昌图县", 211281: "调兵山市", 211282: "开原市", 211300: "朝阳市", 211302: "双塔区", 211303: "龙城区", 211321: "朝阳县", 211322: "建平县", 211324: "喀喇沁左翼蒙古族自治县", 211381: "北票市", 211382: "凌源市", 211400: "葫芦岛市", 211402: "连山区", 211403: "龙港区", 211404: "南票区", 211421: "绥中县", 211422: "建昌县", 211481: "兴城市", 22e4: "吉林省", 220100: "长春市", 220102: "南关区", 220103: "宽城区", 220104: "朝阳区", 220105: "二道区", 220106: "绿园区", 220112: "双阳区", 220113: "九台区", 220122: "农安县", 220182: "榆树市", 220183: "德惠市", 220184: "公主岭市", 220200: "吉林市", 220202: "昌邑区", 220203: "龙潭区", 220204: "船营区", 220211: "丰满区", 220221: "永吉县", 220281: "蛟河市", 220282: "桦甸市", 220283: "舒兰市", 220284: "磐石市", 220300: "四平市", 220302: "铁西区", 220303: "铁东区", 220322: "梨树县", 220323: "伊通满族自治县", 220382: "双辽市", 220400: "辽源市", 220402: "龙山区", 220403: "西安区", 220421: "东丰县", 220422: "东辽县", 220500: "通化市", 220502: "东昌区", 220503: "二道江区", 220521: "通化县", 220523: "辉南县", 220524: "柳河县", 220581: "梅河口市", 220582: "集安市", 220600: "白山市", 220602: "浑江区", 220605: "江源区", 220621: "抚松县", 220622: "靖宇县", 220623: "长白朝鲜族自治县", 220681: "临江市", 220700: "松原市", 220702: "宁江区", 220721: "前郭尔罗斯蒙古族自治县", 220722: "长岭县", 220723: "乾安县", 220781: "扶余市", 220800: "白城市", 220802: "洮北区", 220821: "镇赉县", 220822: "通榆县", 220881: "洮南市", 220882: "大安市", 222400: "延边朝鲜族自治州", 222401: "延吉市", 222402: "图们市", 222403: "敦化市", 222404: "珲春市", 222405: "龙井市", 222406: "和龙市", 222424: "汪清县", 222426: "安图县", 23e4: "黑龙江省", 230100: "哈尔滨市", 230102: "道里区", 230103: "南岗区", 230104: "道外区", 230108: "平房区", 230109: "松北区", 230110: "香坊区", 230111: "呼兰区", 230112: "阿城区", 230113: "双城区", 230123: "依兰县", 230124: "方正县", 230125: "宾县", 230126: "巴彦县", 230127: "木兰县", 230128: "通河县", 230129: "延寿县", 230183: "尚志市", 230184: "五常市", 230200: "齐齐哈尔市", 230202: "龙沙区", 230203: "建华区", 230204: "铁锋区", 230205: "昂昂溪区", 230206: "富拉尔基区", 230207: "碾子山区", 230208: "梅里斯达斡尔族区", 230221: "龙江县", 230223: "依安县", 230224: "泰来县", 230225: "甘南县", 230227: "富裕县", 230229: "克山县", 230230: "克东县", 230231: "拜泉县", 230281: "讷河市", 230300: "鸡西市", 230302: "鸡冠区", 230303: "恒山区", 230304: "滴道区", 230305: "梨树区", 230306: "城子河区", 230307: "麻山区", 230321: "鸡东县", 230381: "虎林市", 230382: "密山市", 230400: "鹤岗市", 230402: "向阳区", 230403: "工农区", 230404: "南山区", 230405: "兴安区", 230406: "东山区", 230407: "兴山区", 230421: "萝北县", 230422: "绥滨县", 230500: "双鸭山市", 230502: "尖山区", 230503: "岭东区", 230505: "四方台区", 230506: "宝山区", 230521: "集贤县", 230522: "友谊县", 230523: "宝清县", 230524: "饶河县", 230600: "大庆市", 230602: "萨尔图区", 230603: "龙凤区", 230604: "让胡路区", 230605: "红岗区", 230606: "大同区", 230621: "肇州县", 230622: "肇源县", 230623: "林甸县", 230624: "杜尔伯特蒙古族自治县", 230700: "伊春市", 230717: "伊美区", 230718: "乌翠区", 230719: "友好区", 230722: "嘉荫县", 230723: "汤旺县", 230724: "丰林县", 230725: "大箐山县", 230726: "南岔县", 230751: "金林区", 230781: "铁力市", 230800: "佳木斯市", 230803: "向阳区", 230804: "前进区", 230805: "东风区", 230811: "郊区", 230822: "桦南县", 230826: "桦川县", 230828: "汤原县", 230881: "同江市", 230882: "富锦市", 230883: "抚远市", 230900: "七台河市", 230902: "新兴区", 230903: "桃山区", 230904: "茄子河区", 230921: "勃利县", 231e3: "牡丹江市", 231002: "东安区", 231003: "阳明区", 231004: "爱民区", 231005: "西安区", 231025: "林口县", 231081: "绥芬河市", 231083: "海林市", 231084: "宁安市", 231085: "穆棱市", 231086: "东宁市", 231100: "黑河市", 231102: "爱辉区", 231123: "逊克县", 231124: "孙吴县", 231181: "北安市", 231182: "五大连池市", 231183: "嫩江市", 231200: "绥化市", 231202: "北林区", 231221: "望奎县", 231222: "兰西县", 231223: "青冈县", 231224: "庆安县", 231225: "明水县", 231226: "绥棱县", 231281: "安达市", 231282: "肇东市", 231283: "海伦市", 232700: "大兴安岭地区", 232701: "漠河市", 232721: "呼玛县", 232722: "塔河县", 31e4: "上海市", 310101: "黄浦区", 310104: "徐汇区", 310105: "长宁区", 310106: "静安区", 310107: "普陀区", 310109: "虹口区", 310110: "杨浦区", 310112: "闵行区", 310113: "宝山区", 310114: "嘉定区", 310115: "浦东新区", 310116: "金山区", 310117: "松江区", 310118: "青浦区", 310120: "奉贤区", 310151: "崇明区", 32e4: "江苏省", 320100: "南京市", 320102: "玄武区", 320104: "秦淮区", 320105: "建邺区", 320106: "鼓楼区", 320111: "浦口区", 320113: "栖霞区", 320114: "雨花台区", 320115: "江宁区", 320116: "六合区", 320117: "溧水区", 320118: "高淳区", 320200: "无锡市", 320205: "锡山区", 320206: "惠山区", 320211: "滨湖区", 320213: "梁溪区", 320214: "新吴区", 320281: "江阴市", 320282: "宜兴市", 320300: "徐州市", 320302: "鼓楼区", 320303: "云龙区", 320305: "贾汪区", 320311: "泉山区", 320312: "铜山区", 320321: "丰县", 320322: "沛县", 320324: "睢宁县", 320381: "新沂市", 320382: "邳州市", 320400: "常州市", 320402: "天宁区", 320404: "钟楼区", 320411: "新北区", 320412: "武进区", 320413: "金坛区", 320481: "溧阳市", 320500: "苏州市", 320505: "虎丘区", 320506: "吴中区", 320507: "相城区", 320508: "姑苏区", 320509: "吴江区", 320581: "常熟市", 320582: "张家港市", 320583: "昆山市", 320585: "太仓市", 320600: "南通市", 320612: "通州区", 320613: "崇川区", 320614: "海门区", 320623: "如东县", 320681: "启东市", 320682: "如皋市", 320685: "海安市", 320700: "连云港市", 320703: "连云区", 320706: "海州区", 320707: "赣榆区", 320722: "东海县", 320723: "灌云县", 320724: "灌南县", 320800: "淮安市", 320803: "淮安区", 320804: "淮阴区", 320812: "清江浦区", 320813: "洪泽区", 320826: "涟水县", 320830: "盱眙县", 320831: "金湖县", 320900: "盐城市", 320902: "亭湖区", 320903: "盐都区", 320904: "大丰区", 320921: "响水县", 320922: "滨海县", 320923: "阜宁县", 320924: "射阳县", 320925: "建湖县", 320981: "东台市", 321e3: "扬州市", 321002: "广陵区", 321003: "邗江区", 321012: "江都区", 321023: "宝应县", 321081: "仪征市", 321084: "高邮市", 321100: "镇江市", 321102: "京口区", 321111: "润州区", 321112: "丹徒区", 321181: "丹阳市", 321182: "扬中市", 321183: "句容市", 321200: "泰州市", 321202: "海陵区", 321203: "高港区", 321204: "姜堰区", 321281: "兴化市", 321282: "靖江市", 321283: "泰兴市", 321300: "宿迁市", 321302: "宿城区", 321311: "宿豫区", 321322: "沭阳县", 321323: "泗阳县", 321324: "泗洪县", 33e4: "浙江省", 330100: "杭州市", 330102: "上城区", 330105: "拱墅区", 330106: "西湖区", 330108: "滨江区", 330109: "萧山区", 330110: "余杭区", 330111: "富阳区", 330112: "临安区", 330113: "临平区", 330114: "钱塘区", 330122: "桐庐县", 330127: "淳安县", 330182: "建德市", 330200: "宁波市", 330203: "海曙区", 330205: "江北区", 330206: "北仑区", 330211: "镇海区", 330212: "鄞州区", 330213: "奉化区", 330225: "象山县", 330226: "宁海县", 330281: "余姚市", 330282: "慈溪市", 330300: "温州市", 330302: "鹿城区", 330303: "龙湾区", 330304: "瓯海区", 330305: "洞头区", 330324: "永嘉县", 330326: "平阳县", 330327: "苍南县", 330328: "文成县", 330329: "泰顺县", 330381: "瑞安市", 330382: "乐清市", 330383: "龙港市", 330400: "嘉兴市", 330402: "南湖区", 330411: "秀洲区", 330421: "嘉善县", 330424: "海盐县", 330481: "海宁市", 330482: "平湖市", 330483: "桐乡市", 330500: "湖州市", 330502: "吴兴区", 330503: "南浔区", 330521: "德清县", 330522: "长兴县", 330523: "安吉县", 330600: "绍兴市", 330602: "越城区", 330603: "柯桥区", 330604: "上虞区", 330624: "新昌县", 330681: "诸暨市", 330683: "嵊州市", 330700: "金华市", 330702: "婺城区", 330703: "金东区", 330723: "武义县", 330726: "浦江县", 330727: "磐安县", 330781: "兰溪市", 330782: "义乌市", 330783: "东阳市", 330784: "永康市", 330800: "衢州市", 330802: "柯城区", 330803: "衢江区", 330822: "常山县", 330824: "开化县", 330825: "龙游县", 330881: "江山市", 330900: "舟山市", 330902: "定海区", 330903: "普陀区", 330921: "岱山县", 330922: "嵊泗县", 331e3: "台州市", 331002: "椒江区", 331003: "黄岩区", 331004: "路桥区", 331022: "三门县", 331023: "天台县", 331024: "仙居县", 331081: "温岭市", 331082: "临海市", 331083: "玉环市", 331100: "丽水市", 331102: "莲都区", 331121: "青田县", 331122: "缙云县", 331123: "遂昌县", 331124: "松阳县", 331125: "云和县", 331126: "庆元县", 331127: "景宁畲族自治县", 331181: "龙泉市", 34e4: "安徽省", 340100: "合肥市", 340102: "瑶海区", 340103: "庐阳区", 340104: "蜀山区", 340111: "包河区", 340121: "长丰县", 340122: "肥东县", 340123: "肥西县", 340124: "庐江县", 340181: "巢湖市", 340200: "芜湖市", 340202: "镜湖区", 340207: "鸠江区", 340209: "弋江区", 340210: "湾沚区", 340212: "繁昌区", 340223: "南陵县", 340281: "无为市", 340300: "蚌埠市", 340302: "龙子湖区", 340303: "蚌山区", 340304: "禹会区", 340311: "淮上区", 340321: "怀远县", 340322: "五河县", 340323: "固镇县", 340400: "淮南市", 340402: "大通区", 340403: "田家庵区", 340404: "谢家集区", 340405: "八公山区", 340406: "潘集区", 340421: "凤台县", 340422: "寿县", 340500: "马鞍山市", 340503: "花山区", 340504: "雨山区", 340506: "博望区", 340521: "当涂县", 340522: "含山县", 340523: "和县", 340600: "淮北市", 340602: "杜集区", 340603: "相山区", 340604: "烈山区", 340621: "濉溪县", 340700: "铜陵市", 340705: "铜官区", 340706: "义安区", 340711: "郊区", 340722: "枞阳县", 340800: "安庆市", 340802: "迎江区", 340803: "大观区", 340811: "宜秀区", 340822: "怀宁县", 340825: "太湖县", 340826: "宿松县", 340827: "望江县", 340828: "岳西县", 340881: "桐城市", 340882: "潜山市", 341e3: "黄山市", 341002: "屯溪区", 341003: "黄山区", 341004: "徽州区", 341021: "歙县", 341022: "休宁县", 341023: "黟县", 341024: "祁门县", 341100: "滁州市", 341102: "琅琊区", 341103: "南谯区", 341122: "来安县", 341124: "全椒县", 341125: "定远县", 341126: "凤阳县", 341181: "天长市", 341182: "明光市", 341200: "阜阳市", 341202: "颍州区", 341203: "颍东区", 341204: "颍泉区", 341221: "临泉县", 341222: "太和县", 341225: "阜南县", 341226: "颍上县", 341282: "界首市", 341300: "宿州市", 341302: "埇桥区", 341321: "砀山县", 341322: "萧县", 341323: "灵璧县", 341324: "泗县", 341500: "六安市", 341502: "金安区", 341503: "裕安区", 341504: "叶集区", 341522: "霍邱县", 341523: "舒城县", 341524: "金寨县", 341525: "霍山县", 341600: "亳州市", 341602: "谯城区", 341621: "涡阳县", 341622: "蒙城县", 341623: "利辛县", 341700: "池州市", 341702: "贵池区", 341721: "东至县", 341722: "石台县", 341723: "青阳县", 341800: "宣城市", 341802: "宣州区", 341821: "郎溪县", 341823: "泾县", 341824: "绩溪县", 341825: "旌德县", 341881: "宁国市", 341882: "广德市", 35e4: "福建省", 350100: "福州市", 350102: "鼓楼区", 350103: "台江区", 350104: "仓山区", 350105: "马尾区", 350111: "晋安区", 350112: "长乐区", 350121: "闽侯县", 350122: "连江县", 350123: "罗源县", 350124: "闽清县", 350125: "永泰县", 350128: "平潭县", 350181: "福清市", 350200: "厦门市", 350203: "思明区", 350205: "海沧区", 350206: "湖里区", 350211: "集美区", 350212: "同安区", 350213: "翔安区", 350300: "莆田市", 350302: "城厢区", 350303: "涵江区", 350304: "荔城区", 350305: "秀屿区", 350322: "仙游县", 350400: "三明市", 350404: "三元区", 350405: "沙县区", 350421: "明溪县", 350423: "清流县", 350424: "宁化县", 350425: "大田县", 350426: "尤溪县", 350428: "将乐县", 350429: "泰宁县", 350430: "建宁县", 350481: "永安市", 350500: "泉州市", 350502: "鲤城区", 350503: "丰泽区", 350504: "洛江区", 350505: "泉港区", 350521: "惠安县", 350524: "安溪县", 350525: "永春县", 350526: "德化县", 350527: "金门县", 350581: "石狮市", 350582: "晋江市", 350583: "南安市", 350600: "漳州市", 350602: "芗城区", 350603: "龙文区", 350604: "龙海区", 350605: "长泰区", 350622: "云霄县", 350623: "漳浦县", 350624: "诏安县", 350626: "东山县", 350627: "南靖县", 350628: "平和县", 350629: "华安县", 350700: "南平市", 350702: "延平区", 350703: "建阳区", 350721: "顺昌县", 350722: "浦城县", 350723: "光泽县", 350724: "松溪县", 350725: "政和县", 350781: "邵武市", 350782: "武夷山市", 350783: "建瓯市", 350800: "龙岩市", 350802: "新罗区", 350803: "永定区", 350821: "长汀县", 350823: "上杭县", 350824: "武平县", 350825: "连城县", 350881: "漳平市", 350900: "宁德市", 350902: "蕉城区", 350921: "霞浦县", 350922: "古田县", 350923: "屏南县", 350924: "寿宁县", 350925: "周宁县", 350926: "柘荣县", 350981: "福安市", 350982: "福鼎市", 36e4: "江西省", 360100: "南昌市", 360102: "东湖区", 360103: "西湖区", 360104: "青云谱区", 360111: "青山湖区", 360112: "新建区", 360113: "红谷滩区", 360121: "南昌县", 360123: "安义县", 360124: "进贤县", 360200: "景德镇市", 360202: "昌江区", 360203: "珠山区", 360222: "浮梁县", 360281: "乐平市", 360300: "萍乡市", 360302: "安源区", 360313: "湘东区", 360321: "莲花县", 360322: "上栗县", 360323: "芦溪县", 360400: "九江市", 360402: "濂溪区", 360403: "浔阳区", 360404: "柴桑区", 360423: "武宁县", 360424: "修水县", 360425: "永修县", 360426: "德安县", 360428: "都昌县", 360429: "湖口县", 360430: "彭泽县", 360481: "瑞昌市", 360482: "共青城市", 360483: "庐山市", 360500: "新余市", 360502: "渝水区", 360521: "分宜县", 360600: "鹰潭市", 360602: "月湖区", 360603: "余江区", 360681: "贵溪市", 360700: "赣州市", 360702: "章贡区", 360703: "南康区", 360704: "赣县区", 360722: "信丰县", 360723: "大余县", 360724: "上犹县", 360725: "崇义县", 360726: "安远县", 360728: "定南县", 360729: "全南县", 360730: "宁都县", 360731: "于都县", 360732: "兴国县", 360733: "会昌县", 360734: "寻乌县", 360735: "石城县", 360781: "瑞金市", 360783: "龙南市", 360800: "吉安市", 360802: "吉州区", 360803: "青原区", 360821: "吉安县", 360822: "吉水县", 360823: "峡江县", 360824: "新干县", 360825: "永丰县", 360826: "泰和县", 360827: "遂川县", 360828: "万安县", 360829: "安福县", 360830: "永新县", 360881: "井冈山市", 360900: "宜春市", 360902: "袁州区", 360921: "奉新县", 360922: "万载县", 360923: "上高县", 360924: "宜丰县", 360925: "靖安县", 360926: "铜鼓县", 360981: "丰城市", 360982: "樟树市", 360983: "高安市", 361e3: "抚州市", 361002: "临川区", 361003: "东乡区", 361021: "南城县", 361022: "黎川县", 361023: "南丰县", 361024: "崇仁县", 361025: "乐安县", 361026: "宜黄县", 361027: "金溪县", 361028: "资溪县", 361030: "广昌县", 361100: "上饶市", 361102: "信州区", 361103: "广丰区", 361104: "广信区", 361123: "玉山县", 361124: "铅山县", 361125: "横峰县", 361126: "弋阳县", 361127: "余干县", 361128: "鄱阳县", 361129: "万年县", 361130: "婺源县", 361181: "德兴市", 37e4: "山东省", 370100: "济南市", 370102: "历下区", 370103: "市中区", 370104: "槐荫区", 370105: "天桥区", 370112: "历城区", 370113: "长清区", 370114: "章丘区", 370115: "济阳区", 370116: "莱芜区", 370117: "钢城区", 370124: "平阴县", 370126: "商河县", 370200: "青岛市", 370202: "市南区", 370203: "市北区", 370211: "黄岛区", 370212: "崂山区", 370213: "李沧区", 370214: "城阳区", 370215: "即墨区", 370281: "胶州市", 370283: "平度市", 370285: "莱西市", 370300: "淄博市", 370302: "淄川区", 370303: "张店区", 370304: "博山区", 370305: "临淄区", 370306: "周村区", 370321: "桓台县", 370322: "高青县", 370323: "沂源县", 370400: "枣庄市", 370402: "市中区", 370403: "薛城区", 370404: "峄城区", 370405: "台儿庄区", 370406: "山亭区", 370481: "滕州市", 370500: "东营市", 370502: "东营区", 370503: "河口区", 370505: "垦利区", 370522: "利津县", 370523: "广饶县", 370600: "烟台市", 370602: "芝罘区", 370611: "福山区", 370612: "牟平区", 370613: "莱山区", 370614: "蓬莱区", 370681: "龙口市", 370682: "莱阳市", 370683: "莱州市", 370685: "招远市", 370686: "栖霞市", 370687: "海阳市", 370700: "潍坊市", 370702: "潍城区", 370703: "寒亭区", 370704: "坊子区", 370705: "奎文区", 370724: "临朐县", 370725: "昌乐县", 370781: "青州市", 370782: "诸城市", 370783: "寿光市", 370784: "安丘市", 370785: "高密市", 370786: "昌邑市", 370800: "济宁市", 370811: "任城区", 370812: "兖州区", 370826: "微山县", 370827: "鱼台县", 370828: "金乡县", 370829: "嘉祥县", 370830: "汶上县", 370831: "泗水县", 370832: "梁山县", 370881: "曲阜市", 370883: "邹城市", 370900: "泰安市", 370902: "泰山区", 370911: "岱岳区", 370921: "宁阳县", 370923: "东平县", 370982: "新泰市", 370983: "肥城市", 371e3: "威海市", 371002: "环翠区", 371003: "文登区", 371082: "荣成市", 371083: "乳山市", 371100: "日照市", 371102: "东港区", 371103: "岚山区", 371121: "五莲县", 371122: "莒县", 371300: "临沂市", 371302: "兰山区", 371311: "罗庄区", 371312: "河东区", 371321: "沂南县", 371322: "郯城县", 371323: "沂水县", 371324: "兰陵县", 371325: "费县", 371326: "平邑县", 371327: "莒南县", 371328: "蒙阴县", 371329: "临沭县", 371400: "德州市", 371402: "德城区", 371403: "陵城区", 371422: "宁津县", 371423: "庆云县", 371424: "临邑县", 371425: "齐河县", 371426: "平原县", 371427: "夏津县", 371428: "武城县", 371481: "乐陵市", 371482: "禹城市", 371500: "聊城市", 371502: "东昌府区", 371503: "茌平区", 371521: "阳谷县", 371522: "莘县", 371524: "东阿县", 371525: "冠县", 371526: "高唐县", 371581: "临清市", 371600: "滨州市", 371602: "滨城区", 371603: "沾化区", 371621: "惠民县", 371622: "阳信县", 371623: "无棣县", 371625: "博兴县", 371681: "邹平市", 371700: "菏泽市", 371702: "牡丹区", 371703: "定陶区", 371721: "曹县", 371722: "单县", 371723: "成武县", 371724: "巨野县", 371725: "郓城县", 371726: "鄄城县", 371728: "东明县", 41e4: "河南省", 410100: "郑州市", 410102: "中原区", 410103: "二七区", 410104: "管城回族区", 410105: "金水区", 410106: "上街区", 410108: "惠济区", 410122: "中牟县", 410181: "巩义市", 410182: "荥阳市", 410183: "新密市", 410184: "新郑市", 410185: "登封市", 410200: "开封市", 410202: "龙亭区", 410203: "顺河回族区", 410204: "鼓楼区", 410205: "禹王台区", 410212: "祥符区", 410221: "杞县", 410222: "通许县", 410223: "尉氏县", 410225: "兰考县", 410300: "洛阳市", 410302: "老城区", 410303: "西工区", 410304: "瀍河回族区", 410305: "涧西区", 410307: "偃师区", 410308: "孟津区", 410311: "洛龙区", 410323: "新安县", 410324: "栾川县", 410325: "嵩县", 410326: "汝阳县", 410327: "宜阳县", 410328: "洛宁县", 410329: "伊川县", 410400: "平顶山市", 410402: "新华区", 410403: "卫东区", 410404: "石龙区", 410411: "湛河区", 410421: "宝丰县", 410422: "叶县", 410423: "鲁山县", 410425: "郏县", 410481: "舞钢市", 410482: "汝州市", 410500: "安阳市", 410502: "文峰区", 410503: "北关区", 410505: "殷都区", 410506: "龙安区", 410522: "安阳县", 410523: "汤阴县", 410526: "滑县", 410527: "内黄县", 410581: "林州市", 410600: "鹤壁市", 410602: "鹤山区", 410603: "山城区", 410611: "淇滨区", 410621: "浚县", 410622: "淇县", 410700: "新乡市", 410702: "红旗区", 410703: "卫滨区", 410704: "凤泉区", 410711: "牧野区", 410721: "新乡县", 410724: "获嘉县", 410725: "原阳县", 410726: "延津县", 410727: "封丘县", 410781: "卫辉市", 410782: "辉县市", 410783: "长垣市", 410800: "焦作市", 410802: "解放区", 410803: "中站区", 410804: "马村区", 410811: "山阳区", 410821: "修武县", 410822: "博爱县", 410823: "武陟县", 410825: "温县", 410882: "沁阳市", 410883: "孟州市", 410900: "濮阳市", 410902: "华龙区", 410922: "清丰县", 410923: "南乐县", 410926: "范县", 410927: "台前县", 410928: "濮阳县", 411e3: "许昌市", 411002: "魏都区", 411003: "建安区", 411024: "鄢陵县", 411025: "襄城县", 411081: "禹州市", 411082: "长葛市", 411100: "漯河市", 411102: "源汇区", 411103: "郾城区", 411104: "召陵区", 411121: "舞阳县", 41