@mixly/arduino-avr
Version:
适用于mixly的arduino avr模块
1,601 lines (1,572 loc) • 103 kB
JavaScript
import { JSFuncs } from 'mixly';
export const ethernet_init_begin = function (_, generator) {
var Ethernet = this.getFieldValue('Ethernet');
generator.definitions_['include_spi'] = '#include <SPI.h>';
generator.definitions_['include_' + Ethernet] = '#include <' + Ethernet + '.h>';
generator.definitions_['var_declare_EthernetClient'] = 'EthernetClient client;';
var mac = generator.valueToCode(this, 'MAC', generator.ORDER_ATOMIC);
var code = "Ethernet.begin(" + mac + ")";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_mac_address = function (_, generator) {
var VAR1 = this.getFieldValue('VAR1');
var VAR2 = this.getFieldValue('VAR2');
var VAR3 = this.getFieldValue('VAR3');
var VAR4 = this.getFieldValue('VAR4');
var VAR5 = this.getFieldValue('VAR5');
var VAR6 = this.getFieldValue('VAR6');
generator.definitions_['var_declare_byte_mac'] = 'byte mac[] = {0x' + VAR1 + ', 0x' + VAR2 + ', 0x' + VAR3 + ', 0x' + VAR4 + ', 0x' + VAR5 + ', 0x' + VAR6 + '};';
var code = "mac";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_init_local_ip = function (_, generator) {
var code = "Ethernet.localIP()";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_client_connect_server = function (_, generator) {
var PORT = generator.valueToCode(this, 'PORT', generator.ORDER_ATOMIC);
var SERVER = generator.quote_(this.getFieldValue('SERVER'));
var code = 'client.connect(' + SERVER + ',' + PORT + ')';
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_client_stop = function () {
var code = "client.stop();\n";
return code;
}
export const ethernet_client_connected = function (_, generator) {
var code = "client.connected()";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_client_available = function (_, generator) {
var code = "client.available()";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_client_print = function (_, generator) {
var TEXT = generator.valueToCode(this, 'TEXT', generator.ORDER_ATOMIC) || '""';
var code = 'client.print(' + TEXT + ');\n';
return code;
}
export const ethernet_client_println = function (_, generator) {
var TEXT = generator.valueToCode(this, 'TEXT', generator.ORDER_ATOMIC) || '""';
var code = 'client.println(' + TEXT + ');\n';
return code;
}
export const ethernet_client_read = function (_, generator) {
var code = "(char)client.read()";
return [code, generator.ORDER_ATOMIC];
}
export const ethernet_client_get_request = function () {
var URL = this.getFieldValue('URL');
var SERVER = this.getFieldValue('SERVER');
var code = 'client.println("GET ' + URL + ' HTTP/1.1");\n'
+ 'client.println(F("Host: ' + SERVER + '"));\n'
+ 'client.println(F("Connection: close"));\n'
+ 'client.println();\n';
return code;
}
export const WIFI_info = function (_, generator) {
var SSID = generator.valueToCode(this, 'SSID', generator.ORDER_ATOMIC);
var PWD = generator.valueToCode(this, 'PWD', generator.ORDER_ATOMIC);
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
generator.setups_['setup_WiFi_begin'] = 'WiFi.begin(' + SSID + ', ' + PWD + ');\n'
+ ' while (WiFi.status() != WL_CONNECTED) {\n'
+ ' delay(500);\n'
+ ' Serial.print(".");\n'
+ ' }\n'
+ ' Serial.println("Local IP:");\n'
+ ' Serial.print(WiFi.localIP());\n'
return "";
}
export const network_wifi_connect = function (_, generator) {
return ["WiFi.status()", generator.ORDER_ATOMIC];
}
export const network_get_connect = function (_, generator) {
var board_type = JSFuncs.getPlatform();
var mode = this.getFieldValue('mode');
if (board_type.match(RegExp(/ESP8266/))) {
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
}
else if (board_type.match(RegExp(/ESP32/))) {
generator.definitions_['include_WiFi'] = '#include <WiFi.h>';
}
if (mode == 'IP') {
return ["WiFi.localIP()", generator.ORDER_ATOMIC];
}
return ["WiFi.macAddress()", generator.ORDER_ATOMIC];
}
export const NTP_server = function (_, generator) {
var server_add = generator.valueToCode(this, 'server_add', generator.ORDER_ATOMIC);
var timeZone = generator.valueToCode(this, 'timeZone', generator.ORDER_ATOMIC);
var Interval = generator.valueToCode(this, 'Interval', generator.ORDER_ATOMIC);
generator.definitions_['include_TimeLib'] = '#include <TimeLib.h>';
generator.definitions_['include_NtpClientLib'] = '#include <NtpClientLib.h>';
generator.definitions_['var_declare_timeZone'] = 'int8_t timeZone = ' + timeZone + ';';
generator.definitions_['var_declare_ntpServer'] = 'const PROGMEM char *ntpServer = ' + server_add + ';';
generator.setups_['setup_NTP.setInterval'] = 'NTP.setInterval (' + Interval + ');';
generator.setups_['setup_NTP.setNTPTimeout'] = 'NTP.setNTPTimeout (1500);';
generator.setups_['setup_NTP.begin'] = 'NTP.begin (ntpServer, timeZone, false);';
return "";
}
export const NTP_server_get_time = function (_, generator) {
var timeType = this.getFieldValue('TIME_TYPE');
var code = timeType;
return [code, generator.ORDER_ATOMIC];
}
var Client_ID;
export const MQTT_server = function (_, generator) {
var server_add = generator.valueToCode(this, 'server_add', generator.ORDER_ATOMIC);
var server_port = generator.valueToCode(this, 'server_port', generator.ORDER_ATOMIC);
var IOT_ID = generator.valueToCode(this, 'IOT_ID', generator.ORDER_ATOMIC);
var IOT_PWD = generator.valueToCode(this, 'IOT_PWD', generator.ORDER_ATOMIC);
Client_ID = generator.valueToCode(this, 'Client_ID', generator.ORDER_ATOMIC);
if (Client_ID.length > 2) {
Client_ID += '/';
}
Client_ID = Client_ID.replace(/"/g, "");
generator.definitions_['include_Adafruit_MQTT'] = '#include "Adafruit_MQTT.h"';
generator.definitions_['include_Adafruit_MQTT_Client'] = '#include "Adafruit_MQTT_Client.h"';
generator.definitions_['include__WiFiClient'] = 'WiFiClient client;';
generator.definitions_['var_declare_Adafruit_MQTT_Client'] = 'Adafruit_MQTT_Client mqtt(&client, ' + server_add + ', ' + server_port + ', ' + IOT_ID + ', ' + IOT_PWD + ');';
var board_type = JSFuncs.getPlatform();
if (board_type.match(RegExp(/ESP8266/))) {
generator.definitions_['var_declare_ MQTT_connect();'] = 'void MQTT_connect();';
}
var funcName = 'MQTT_connect';
var code = 'void' + ' ' + funcName + '() {\n'
+ ' int8_t ret;\n'
+ ' if (mqtt.connected()) {\n'
+ ' return;\n'
+ ' }\n'
+ ' Serial.print("Connecting to MQTT... ");\n'
+ ' uint8_t retries = 3;\n'
+ ' while ((ret = mqtt.connect()) != 0) {\n'
+ ' Serial.println(mqtt.connectErrorString(ret));\n'
+ ' Serial.println("Retrying MQTT connection in 5 seconds...");\n'
+ ' mqtt.disconnect();\n'
+ ' delay(5000);\n'
+ ' retries--;\n'
+ ' if (retries == 0) {\n'
+ ' while (1);\n'
+ ' }\n'
+ ' }\n'
+ ' Serial.println("MQTT Connected!");\n'
+ '}\n';
generator.definitions_['var_declare_' + funcName] = code;
return funcName + '();\n';
}
export const MQTT_connect = function () {
var funcName = 'MQTT_connect';
// var code = 'void' + ' ' + funcName + '() {\n'
// + ' int8_t ret;\n'
// + ' if (mqtt.connected()) {\n'
// + ' return;\n'
// + ' }\n'
// + ' Serial.print("Connecting to MQTT... ");\n'
// + ' uint8_t retries = 3;\n'
// + ' while ((ret = mqtt.connect()) != 0) {\n'
// + ' Serial.println(mqtt.connectErrorString(ret));\n'
// + ' Serial.println("Retrying MQTT connection in 5 seconds...");\n'
// + ' mqtt.disconnect();\n'
// + ' delay(5000);\n'
// + ' retries--;\n'
// + ' if (retries == 0) {\n'
// + ' while (1);\n'
// + ' }\n'
// + ' }\n'
// + ' Serial.println("MQTT Connected!");\n'
// + '}\n';
return funcName + '();\n';
}
// 物联网-发送数据到app
export const MQTT_publish = function (_, generator) {
var Topic = this.getFieldValue('Topic');
var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
var Topic_var = "MQTT_Topic_" + Topic;
generator.definitions_['var_declare_Adafruit_MQTT_Publish' + Topic_var] = 'Adafruit_MQTT_Publish ' + Topic_var + ' = Adafruit_MQTT_Publish(&mqtt, "' + Client_ID + Topic + '");';
var code = Topic_var + '.publish(' + data + ');\n ';
return code;
}
export const MQTT_subscribe_value = function (_, generator) {
var Topic = this.getFieldValue('Topic_0');
if (Topic)
Topic = Topic.replace(/"/g, "");
var Topic_var = "MQTT_Topic_" + Topic;
var code = '(char *)' + Topic_var + '.lastread';
return [code, generator.ORDER_ATOMIC];
}
export const MQTT_subscribe = function (_, generator) {
var n = 0;
var Topic = this.getFieldValue('Topic_0');
if (Topic)
Topic = Topic.replace(/"/g, "");
var Topic_var = "MQTT_Topic_" + Topic;
var branch = generator.statementToCode(this, 'DO' + n);
var code = 'if (subscription ==&' + Topic_var + ') {\n ' + branch.replace(new RegExp(/\n/g), "\n ") + '\n }';
generator.definitions_['var_declare_Adafruit_MQTT_Subscribe' + Client_ID + '/' + Topic] = 'Adafruit_MQTT_Subscribe ' + Topic_var + ' = Adafruit_MQTT_Subscribe(&mqtt,"' + Client_ID + Topic + '");';
generator.setups_['setup_mqtt.subscribe' + Topic] = 'mqtt.subscribe(&' + Topic_var + ');';
for (n = 1; n <= this.elseifCount_; n++) {
var Topic = this.getFieldValue('Topic_' + n);
if (Topic)
Topic = Topic.replace(/"/g, "");
Topic_var = "MQTT_Topic_" + Topic;
branch = generator.statementToCode(this, 'DO' + n);
generator.definitions_['var_declare_Adafruit_MQTT_Subscribe' + Client_ID + Topic] = 'Adafruit_MQTT_Subscribe ' + Topic_var + ' = Adafruit_MQTT_Subscribe(&mqtt,"' + Client_ID + Topic + '");';
generator.setups_['setup_mqtt.subscribe' + Topic] = 'mqtt.subscribe(&' + Topic_var + ');';
code += ' else if (subscription == &' + Topic_var + ') {\n ' + branch.replace(new RegExp(/\n/g), "\n ") + '\n }';
}
if (this.elseCount_) {
branch = generator.statementToCode(this, 'ELSE');
code += ' else {\n ' + branch + '\n }';
}
return 'Adafruit_MQTT_Subscribe *subscription;\nwhile ((subscription = mqtt.readSubscription(5000))) {\n ' + code + '\n}\n';
}
export const WIFI_smartConfig = function (_, generator) {
var MODE = this.getFieldValue('MODE');
// var board_type = JSFuncs.getPlatform();
if (MODE == 'SmartConfig') {
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
generator.definitions_['include_ESP8266WiFiMulti'] = '#include <ESP8266WiFiMulti.h>';
generator.definitions_['var_declare_ESP8266WiFiMulti'] = ' ESP8266WiFiMulti wifiMulti;';
generator.setups_['setup_WiFi_Smartconfig'] = 'Serial.println("Wait for Smartconfig");\n'
+ 'wifiMulti.run();\n'
+ 'WiFi.setAutoConnect(true);\n'
+ 'if (WiFi.status() == WL_CONNECTED) {\n'
+ 'Serial.println("WiFi connected");\n'
+ 'Serial.println("IP address: ");\n'
+ 'Serial.println(WiFi.localIP());\n'
+ ' }\n'
+ 'else{\n'
+ ' WiFi.mode(WIFI_STA);\n'
+ ' WiFi.beginSmartConfig();\n'
+ ' while(!WiFi.smartConfigDone()){\n'
+ 'Serial.print(".");\n'
+ 'delay(500);\n'
+ '}\n'
+ 'Serial.println("SmartConfig Success");\n'
+ 'Serial.printf("SSID:%s", WiFi.SSID().c_str());\n'
+ 'Serial.printf("PSW:%s", WiFi.psk().c_str());\n'
+ 'wifiMulti.addAP(WiFi.SSID().c_str(),WiFi.psk().c_str());\n'
+ '}\n'
return "";
}
generator.definitions_['include_WiFiManager'] = '#include <WiFiManager.h>';
generator.definitions_['var_declare_WiFiServer'] = 'WiFiServer server(80);';
generator.setups_['setup_WiFi_mode'] = 'WiFi.mode(WIFI_STA);';
generator.setups_['setup_WiFiManager'] = 'WiFiManager wm;';
generator.setups_['setup_bool_res'] = 'bool res;';
generator.setups_['setup_wifiManagerautoConnect'] = 'res=wm.autoConnect();';
return "";
}
export const WIFI_ap_or_sta = function (_, generator) {
var dropdown_mode = this.getFieldValue('mode');
var value_SSID = generator.valueToCode(this, 'SSID', generator.ORDER_ATOMIC);
var value_PSK = generator.valueToCode(this, 'PSK', generator.ORDER_ATOMIC);
var value_IP1 = generator.valueToCode(this, 'IP1', generator.ORDER_ATOMIC);
var value_IP2 = generator.valueToCode(this, 'IP2', generator.ORDER_ATOMIC);
var value_IP = generator.valueToCode(this, 'IP', generator.ORDER_ATOMIC);
var value_duankou = generator.valueToCode(this, 'duankou', generator.ORDER_ATOMIC);
value_IP1 = value_IP1.replace(new RegExp(/\./g), ",");
value_IP2 = value_IP2.replace(new RegExp(/\./g), ",");
value_IP = value_IP.replace(new RegExp(/\./g), ",");
var board_type = JSFuncs.getPlatform();
if (board_type.match(RegExp(/ESP8266/)) != null)
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
else
generator.definitions_['include_WiFi'] = '#include <WiFi.h>';
generator.setups_['setup_serial_Serial'] = 'Serial.begin(9600);';
if (dropdown_mode == 'STA') {
generator.definitions_['include_WiFiUdp'] = '#include <WiFiUdp.h>';
generator.definitions_['define_STASSID'] = '#define STASSID ' + value_SSID + '';
generator.definitions_['define_STAPSK'] = '#define STAPSK ' + value_PSK + '';
generator.definitions_['var_declare_ESP8266ip1'] = 'IPAddress ESP8266ip1(' + value_IP1 + ');';
generator.definitions_['var_declare_ESP8266ip2'] = 'IPAddress ESP8266ip2(' + value_IP2 + ');';
generator.definitions_['var_declare_ESP8266ip'] = 'IPAddress ESP8266ip(' + value_IP + ');';
generator.definitions_['var_declare_localPort'] = 'unsigned int localPort = ' + value_duankou + ';';
generator.definitions_['var_declare_remotePort'] = 'unsigned int remotePort = ' + value_duankou + ';';
generator.definitions_['var_declare_incomingPacket'] = 'char incomingPacket[537];';
generator.definitions_['var_declare_A'] = 'char A;';
generator.definitions_['var_declare_Udp'] = 'WiFiUDP Udp;';
generator.setups_['setup_wifi_sta'] = 'WiFi.mode(WIFI_STA);\n'
+ ' WiFi.begin(STASSID, STAPSK);\n'
+ ' while(WiFi.status() != WL_CONNECTED){\n'
+ ' Serial.print(".");\n'
+ ' delay(500);\n'
+ ' }\n'
+ ' delay(500);\n'
+ ' Serial.print("Connected! IP address: ");\n'
+ ' Serial.println(WiFi.localIP());\n'
+ ' Serial.printf("UDP server on port ", localPort);\n'
+ ' Udp.begin(localPort);';
}
else {
generator.definitions_['include_WiFiUDP'] = '#include <WiFiUDP.h>';
generator.definitions_['var_declare_AP_NameChar'] = 'const char AP_NameChar[] = ' + value_SSID + ';';
generator.definitions_['var_declare_WiFiAPPSK'] = 'const char WiFiAPPSK[] = ' + value_PSK + ';';
generator.definitions_['var_declare_ESP8266ip1'] = 'IPAddress ESP8266ip1(' + value_IP1 + ');';
generator.definitions_['var_declare_ESP8266ip2'] = 'IPAddress ESP8266ip2(' + value_IP2 + ');';
generator.definitions_['var_declare_ESP8266ip'] = 'IPAddress ESP8266ip(' + value_IP + ');';
generator.definitions_['var_declare_localPort'] = 'unsigned int localPort = ' + value_duankou + ';';
generator.definitions_['var_declare_remotePort'] = 'unsigned int remotePort = ' + value_duankou + ';';
generator.definitions_['var_declare_incomingPacket'] = 'char incomingPacket[537];';
generator.definitions_['var_declare_A'] = 'char A;';
generator.definitions_['var_declare_Udp'] = 'WiFiUDP Udp;';
generator.setups_['setup_wifi_ap'] = 'WiFi.mode(WIFI_AP);\n'
+ ' WiFi.softAP(AP_NameChar, WiFiAPPSK);\n'
+ ' Udp.begin(localPort);\n'
+ ' Serial.println();\n'
+ ' Serial.println("Started ap. Local ip: " + WiFi.localIP().toString());';
}
var code = '';
return code;
}
export const WIFI_ap_and_sta = function (_, generator) {
var value_SSID1 = generator.valueToCode(this, 'SSID1', generator.ORDER_ATOMIC);
var value_SSID2 = generator.valueToCode(this, 'SSID2', generator.ORDER_ATOMIC);
var value_PSK1 = generator.valueToCode(this, 'PSK1', generator.ORDER_ATOMIC);
var value_PSK2 = generator.valueToCode(this, 'PSK2', generator.ORDER_ATOMIC);
var value_IP1 = generator.valueToCode(this, 'IP1', generator.ORDER_ATOMIC);
var value_IP2 = generator.valueToCode(this, 'IP2', generator.ORDER_ATOMIC);
var value_IP = generator.valueToCode(this, 'IP', generator.ORDER_ATOMIC);
var value_duankou = generator.valueToCode(this, 'duankou', generator.ORDER_ATOMIC);
value_IP1 = value_IP1.replace(new RegExp(/\./g), ",");
value_IP2 = value_IP2.replace(new RegExp(/\./g), ",");
value_IP = value_IP.replace(new RegExp(/\./g), ",");
generator.definitions_['define_STASSID'] = '#define STASSID ' + value_SSID1;
generator.definitions_['define_STAPSK'] = '#define STAPSK ' + value_PSK1;
var board_type = JSFuncs.getPlatform();
if (board_type.match(RegExp(/ESP8266/)) != null)
generator.definitions_['include_ESP8266WiFi'] = '#include <ESP8266WiFi.h>';
else
generator.definitions_['include_WiFi'] = '#include <WiFi.h>';
generator.definitions_['include_WiFiUDP'] = '#include <WiFiUDP.h>';
generator.definitions_['var_declare_AP_NameChar'] = 'const char AP_NameChar[] = ' + value_SSID2 + ';';
generator.definitions_['var_declare_WiFiAPPSK'] = 'const char WiFiAPPSK[] = ' + value_PSK2 + ';';
generator.definitions_['var_declare_ESP8266ip1'] = 'IPAddress ESP8266ip1(' + value_IP1 + ');';
generator.definitions_['var_declare_ESP8266ip2'] = 'IPAddress ESP8266ip2(' + value_IP2 + ');';
generator.definitions_['var_declare_ESP8266ip'] = 'IPAddress ESP8266ip(' + value_IP + ');';
generator.definitions_['var_declare_localPort'] = 'unsigned int localPort = ' + value_duankou + ';';
generator.definitions_['var_declare_remotePort'] = 'unsigned int remotePort = ' + value_duankou + ';';
generator.definitions_['var_declare_incomingPacket'] = 'char incomingPacket[537];';
generator.definitions_['var_declare_A'] = 'char A;';
generator.definitions_['var_declare_Udp'] = 'WiFiUDP Udp;';
generator.setups_['setup_serial_Serial'] = 'Serial.begin(9600);';
generator.setups_['setup_wifi_ap_and_sta'] = 'WiFi.mode(WIFI_AP_STA);\n'
+ ' WiFi.softAP(AP_NameChar, WiFiAPPSK);\n'
+ ' WiFi.begin(STASSID, STAPSK);\n'
+ ' Udp.begin(localPort);\n'
+ ' Serial.println();\n'
+ ' Serial.println("Started ap. Local ip: " + WiFi.localIP().toString());';
var code = '';
return code;
}
export const WIFI_incomingPacket = function (_, generator) {
var value_input_data = generator.valueToCode(this, 'input_data', generator.ORDER_ATOMIC) || 'COM';
var statements_do = generator.statementToCode(this, 'do');
statements_do = statements_do.replace(/(^\s*)|(\s*$)/g, "");//去除两端空格
var code = 'int packetSize = Udp.parsePacket();\n'
+ 'if (packetSize) {\n'
+ ' Serial.printf("Received %d bytes from %s, port %d\\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());\n'
+ ' int len = Udp.read(incomingPacket, 536);\n'
+ ' if (len > 0) {\n'
+ ' incomingPacket[len] = 0;\n'
+ ' Serial.printf("UDP packet contents: %s\\n", incomingPacket);\n'
+ ' String ' + value_input_data + ' = incomingPacket;\n'
+ (statements_do != '' ? (' ' + statements_do.replace(new RegExp(/\n/g), "\n ") + '\n') : '')
+ ' }\n'
+ '}\n';
return code;
}
export const WIFI_send_data = function (_, generator) {
var value_data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);
var code = 'Udp.beginPacket(Udp.remoteIP(),Udp.remotePort());\n'
+ 'Udp.write(' + value_data + ');\n'
+ 'Udp.endPacket();\n';
return code;
}
var WeatherCity = {
"北京": "101010100",
"海淀": "101010200",
"朝阳": "101010300",
"顺义": "101010400",
"怀柔": "101010500",
"通州": "101010600",
"昌平": "101010700",
"延庆": "101010800",
"丰台": "101010900",
"石景山": "101011000",
"大兴": "101011100",
"房山": "101011200",
"密云": "101011300",
"门头沟": "101011400",
"平谷": "101011500",
"八达岭": "101011600",
"佛爷顶": "101011700",
"汤河口": "101011800",
"密云上甸子": "101011900",
"斋堂": "101012000",
"霞云岭": "101012100",
"上海": "101020100",
"闵行": "101020200",
"宝山": "101020300",
"川沙": "101020400",
"嘉定": "101020500",
"南汇": "101020600",
"金山": "101020700",
"青浦": "101020800",
"松江": "101020900",
"奉贤": "101021000",
"崇明": "101021100",
"陈家镇": "101021101",
"引水船": "101021102",
"徐家汇": "101021200",
"浦东": "101021300",
"天津": "101030100",
"武清": "101030200",
"宝坻": "101030300",
"东丽": "101030400",
"西青": "101030500",
"北辰": "101030600",
"宁河": "101030700",
"汉沽": "101030800",
"静海": "101030900",
"津南": "101031000",
"塘沽": "101031100",
"大港": "101031200",
"平台": "101031300",
"蓟县": "101031400",
"重庆": "101040100",
"永川": "101040200",
"合川": "101040300",
"南川": "101040400",
"江津": "101040500",
"万盛": "101040600",
"渝北": "101040700",
"北碚": "101040800",
"巴南": "101040900",
"长寿": "101041000",
"黔江": "101041100",
"万州天城": "101041200",
"万州龙宝": "101041300",
"涪陵": "101041400",
"开县": "101041500",
"城口": "101041600",
"云阳": "101041700",
"巫溪": "101041800",
"奉节": "101041900",
"巫山": "101042000",
"潼南": "101042100",
"垫江": "101042200",
"梁平": "101042300",
"忠县": "101042400",
"石柱": "101042500",
"大足": "101042600",
"荣昌": "101042700",
"铜梁": "101042800",
"璧山": "101042900",
"丰都": "101043000",
"武隆": "101043100",
"彭水": "101043200",
"綦江": "101043300",
"酉阳": "101043400",
"金佛山": "101043500",
"秀山": "101043600",
"沙坪坝": "101043700",
"哈尔滨": "101050101",
"双城": "101050102",
"呼兰": "101050103",
"阿城": "101050104",
"宾县": "101050105",
"依兰": "101050106",
"巴彦": "101050107",
"通河": "101050108",
"方正": "101050109",
"延寿": "101050110",
"尚志": "101050111",
"五常": "101050112",
"木兰": "101050113",
"齐齐哈尔": "101050201",
"讷河": "101050202",
"龙江": "101050203",
"甘南": "101050204",
"富裕": "101050205",
"依安": "101050206",
"拜泉": "101050207",
"克山": "101050208",
"克东": "101050209",
"泰来": "101050210",
"牡丹江": "101050301",
"海林": "101050302",
"穆棱": "101050303",
"林口": "101050304",
"绥芬河": "101050305",
"宁安": "101050306",
"东宁": "101050307",
"佳木斯": "101050401",
"汤原": "101050402",
"抚远": "101050403",
"桦川": "101050404",
"桦南": "101050405",
"同江": "101050406",
"富锦": "101050407",
"绥化": "101050501",
"肇东": "101050502",
"安达": "101050503",
"海伦": "101050504",
"明水": "101050505",
"望奎": "101050506",
"兰西": "101050507",
"青冈": "101050508",
"庆安": "101050509",
"绥棱": "101050510",
"黑河": "101050601",
"嫩江": "101050602",
"孙吴": "101050603",
"逊克": "101050604",
"五大连池": "101050605",
"北安": "101050606",
"大兴安岭": "101050701",
"塔河": "101050702",
"漠河": "101050703",
"呼玛": "101050704",
"呼中": "101050705",
"新林": "101050706",
"阿木尔": "101050707",
"加格达奇": "101050708",
"伊春": "101050801",
"乌伊岭": "101050802",
"五营": "101050803",
"铁力": "101050804",
"嘉荫": "101050805",
"大庆": "101050901",
"林甸": "101050902",
"肇州": "101050903",
"肇源": "101050904",
"杜蒙": "101050905",
"七台河": "101051002",
"勃利": "101051003",
"鸡西": "101051101",
"虎林": "101051102",
"密山": "101051103",
"鸡东": "101051104",
"鹤岗": "101051201",
"绥滨": "101051202",
"萝北": "101051203",
"双鸭山": "101051301",
"集贤": "101051302",
"宝清": "101051303",
"饶河": "101051304",
"长春": "101060101",
"农安": "101060102",
"德惠": "101060103",
"九台": "101060104",
"榆树": "101060105",
"双阳": "101060106",
"吉林": "101060201",
"舒兰": "101060202",
"永吉": "101060203",
"蛟河": "101060204",
"磐石": "101060205",
"桦甸": "101060206",
"烟筒山": "101060207",
"延吉": "101060301",
"敦化": "101060302",
"安图": "101060303",
"汪清": "101060304",
"和龙": "101060305",
"天池": "101060306",
"龙井": "101060307",
"珲春": "101060308",
"图们": "101060309",
"罗子沟": "101060311",
"延边": "101060312",
"四平": "101060401",
"双辽": "101060402",
"梨树": "101060403",
"公主岭": "101060404",
"伊通": "101060405",
"孤家子": "101060406",
"通化": "101060501",
"梅河口": "101060502",
"柳河": "101060503",
"辉南": "101060504",
"集安": "101060505",
"通化县": "101060506",
"白城": "101060601",
"洮南": "101060602",
"大安": "101060603",
"镇赉": "101060604",
"通榆": "101060605",
"辽源": "101060701",
"东丰": "101060702",
"松原": "101060801",
"乾安": "101060802",
"前郭": "101060803",
"长岭": "101060804",
"扶余": "101060805",
"白山": "101060901",
"靖宇": "101060902",
"临江": "101060903",
"东岗": "101060904",
"长白": "101060905",
"沈阳": "101070101",
"苏家屯": "101070102",
"辽中": "101070103",
"康平": "101070104",
"法库": "101070105",
"新民": "101070106",
"于洪": "101070107",
"新城子": "101070108",
"大连": "101070201",
"瓦房店": "101070202",
"金州": "101070203",
"普兰店": "101070204",
"旅顺": "101070205",
"长海": "101070206",
"庄河": "101070207",
"皮口": "101070208",
"海洋岛": "101070209",
"鞍山": "101070301",
"台安": "101070302",
"岫岩": "101070303",
"海城": "101070304",
"抚顺": "101070401",
"清原": "101070403",
"章党": "101070404",
"本溪": "101070501",
"本溪县": "101070502",
"草河口": "101070503",
"桓仁": "101070504",
"丹东": "101070601",
"凤城": "101070602",
"宽甸": "101070603",
"东港": "101070604",
"东沟": "101070605",
"锦州": "101070701",
"凌海": "101070702",
"北宁": "101070703",
"义县": "101070704",
"黑山": "101070705",
"北镇": "101070706",
"营口": "101070801",
"大石桥": "101070802",
"盖州": "101070803",
"阜新": "101070901",
"彰武": "101070902",
"辽阳": "101071001",
"辽阳县": "101071002",
"灯塔": "101071003",
"铁岭": "101071101",
"开原": "101071102",
"昌图": "101071103",
"西丰": "101071104",
"建平": "101071202",
"凌源": "101071203",
"喀左": "101071204",
"北票": "101071205",
"羊山": "101071206",
"建平县": "101071207",
"盘锦": "101071301",
"大洼": "101071302",
"盘山": "101071303",
"葫芦岛": "101071401",
"建昌": "101071402",
"绥中": "101071403",
"兴城": "101071404",
"呼和浩特": "101080101",
"土默特左旗": "101080102",
"托克托": "101080103",
"和林格尔": "101080104",
"清水河": "101080105",
"呼和浩特市郊区": "101080106",
"武川": "101080107",
"包头": "101080201",
"白云鄂博": "101080202",
"满都拉": "101080203",
"土默特右旗": "101080204",
"固阳": "101080205",
"达尔罕茂明安联合旗": "101080206",
"石拐": "101080207",
"乌海": "101080301",
"集宁": "101080401",
"卓资": "101080402",
"化德": "101080403",
"商都": "101080404",
"希拉穆仁": "101080405",
"兴和": "101080406",
"凉城": "101080407",
"察哈尔右翼前旗": "101080408",
"察哈尔右翼中旗": "101080409",
"察哈尔右翼后旗": "101080410",
"四子王旗": "101080411",
"丰镇": "101080412",
"通辽": "101080501",
"舍伯吐": "101080502",
"科尔沁左翼中旗": "101080503",
"科尔沁左翼后旗": "101080504",
"青龙山": "101080505",
"开鲁": "101080506",
"库伦旗": "101080507",
"奈曼旗": "101080508",
"扎鲁特旗": "101080509",
"高力板": "101080510",
"巴雅尔吐胡硕": "101080511",
"通辽钱家店": "101080512",
"赤峰": "101080601",
"赤峰郊区站": "101080602",
"阿鲁科尔沁旗": "101080603",
"浩尔吐": "101080604",
"巴林左旗": "101080605",
"巴林右旗": "101080606",
"林西": "101080607",
"克什克腾旗": "101080608",
"翁牛特旗": "101080609",
"岗子": "101080610",
"喀喇沁旗": "101080611",
"八里罕": "101080612",
"宁城": "101080613",
"敖汉旗": "101080614",
"宝过图": "101080615",
"鄂尔多斯": "101080701",
"达拉特旗": "101080703",
"准格尔旗": "101080704",
"鄂托克前旗": "101080705",
"河南": "101080706",
"伊克乌素": "101080707",
"鄂托克旗": "101080708",
"杭锦旗": "101080709",
"乌审旗": "101080710",
"伊金霍洛旗": "101080711",
"乌审召": "101080712",
"东胜": "101080713",
"临河": "101080801",
"五原": "101080802",
"磴口": "101080803",
"乌拉特前旗": "101080804",
"大佘太": "101080805",
"乌拉特中旗": "101080806",
"乌拉特后旗": "101080807",
"海力素": "101080808",
"那仁宝力格": "101080809",
"杭锦后旗": "101080810",
"巴盟农试站": "101080811",
"锡林浩特": "101080901",
"朝克乌拉": "101080902",
"二连浩特": "101080903",
"阿巴嘎旗": "101080904",
"伊和郭勒": "101080905",
"苏尼特左旗": "101080906",
"苏尼特右旗": "101080907",
"朱日和": "101080908",
"东乌珠穆沁旗": "101080909",
"西乌珠穆沁旗": "101080910",
"太仆寺旗": "101080911",
"镶黄旗": "101080912",
"正镶白旗": "101080913",
"正兰旗": "101080914",
"多伦": "101080915",
"博克图": "101080916",
"乌拉盖": "101080917",
"白日乌拉": "101080918",
"那日图": "101080919",
"呼伦贝尔": "101081000",
"海拉尔": "101081001",
"小二沟": "101081002",
"阿荣旗": "101081003",
"莫力达瓦旗": "101081004",
"鄂伦春旗": "101081005",
"鄂温克旗": "101081006",
"陈巴尔虎旗": "101081007",
"新巴尔虎左旗": "101081008",
"新巴尔虎右旗": "101081009",
"满洲里": "101081010",
"牙克石": "101081011",
"扎兰屯": "101081012",
"额尔古纳": "101081014",
"根河": "101081015",
"图里河": "101081016",
"乌兰浩特": "101081101",
"阿尔山": "101081102",
"科尔沁右翼中旗": "101081103",
"胡尔勒": "101081104",
"扎赉特旗": "101081105",
"索伦": "101081106",
"突泉": "101081107",
"霍林郭勒": "101081108",
"阿拉善左旗": "101081201",
"阿拉善右旗": "101081202",
"额济纳旗": "101081203",
"拐子湖": "101081204",
"吉兰太": "101081205",
"锡林高勒": "101081206",
"头道湖": "101081207",
"中泉子": "101081208",
"巴彦诺尔贡": "101081209",
"雅布赖": "101081210",
"乌斯太": "101081211",
"孪井滩": "101081212",
"石家庄": "101090101",
"井陉": "101090102",
"正定": "101090103",
"栾城": "101090104",
"行唐": "101090105",
"灵寿": "101090106",
"高邑": "101090107",
"深泽": "101090108",
"赞皇": "101090109",
"无极": "101090110",
"平山": "101090111",
"元氏": "101090112",
"赵县": "101090113",
"辛集": "101090114",
"藁城": "101090115",
"晋洲": "101090116",
"新乐": "101090117",
"保定": "101090201",
"满城": "101090202",
"阜平": "101090203",
"徐水": "101090204",
"唐县": "101090205",
"高阳": "101090206",
"容城": "101090207",
"紫荆关": "101090208",
"涞源": "101090209",
"望都": "101090210",
"安新": "101090211",
"易县": "101090212",
"涞水": "101090213",
"曲阳": "101090214",
"蠡县": "101090215",
"顺平": "101090216",
"雄县": "101090217",
"涿州": "101090218",
"定州": "101090219",
"安国": "101090220",
"高碑店": "101090221",
"张家口": "101090301",
"宣化": "101090302",
"张北": "101090303",
"康保": "101090304",
"沽源": "101090305",
"尚义": "101090306",
"蔚县": "101090307",
"阳原": "101090308",
"怀安": "101090309",
"万全": "101090310",
"怀来": "101090311",
"涿鹿": "101090312",
"赤城": "101090313",
"崇礼": "101090314",
"承德": "101090402",
"承德县": "101090403",
"兴隆": "101090404",
"平泉": "101090405",
"滦平": "101090406",
"隆化": "101090407",
"丰宁": "101090408",
"宽城": "101090409",
"围场": "101090410",
"塞罕坎": "101090411",
"唐山": "101090501",
"丰南": "101090502",
"丰润": "101090503",
"滦县": "101090504",
"滦南": "101090505",
"乐亭": "101090506",
"迁西": "101090507",
"玉田": "101090508",
"唐海": "101090509",
"遵化": "101090510",
"迁安": "101090511",
"廊坊": "101090601",
"固安": "101090602",
"永清": "101090603",
"香河": "101090604",
"大城": "101090605",
"文安": "101090606",
"大厂": "101090607",
"霸州": "101090608",
"三河": "101090609",
"沧州": "101090701",
"青县": "101090702",
"东光": "101090703",
"海兴": "101090704",
"盐山": "101090705",
"肃宁": "101090706",
"南皮": "101090707",
"吴桥": "101090708",
"献县": "101090709",
"孟村": "101090710",
"泊头": "101090711",
"任丘": "101090712",
"黄骅": "101090713",
"河间": "101090714",
"曹妃甸": "101090715",
"衡水": "101090801",
"枣强": "101090802",
"武邑": "101090803",
"武强": "101090804",
"饶阳": "101090805",
"安平": "101090806",
"故城": "101090807",
"景县": "101090808",
"阜城": "101090809",
"冀州": "101090810",
"深州": "101090811",
"邢台": "101090901",
"临城": "101090902",
"邢台县浆水": "101090903",
"内邱": "101090904",
"柏乡": "101090905",
"隆尧": "101090906",
"南和": "101090907",
"宁晋": "101090908",
"巨鹿": "101090909",
"新河": "101090910",
"广宗": "101090911",
"平乡": "101090912",
"威县": "101090913",
"清河": "101090914",
"临西": "101090915",
"南宫": "101090916",
"沙河": "101090917",
"任县": "101090918",
"邯郸": "101091001",
"峰峰": "101091002",
"临漳": "101091003",
"成安": "101091004",
"大名": "101091005",
"涉县": "101091006",
"磁县": "101091007",
"肥乡": "101091008",
"永年": "101091009",
"邱县": "101091010",
"鸡泽": "101091011",
"广平": "101091012",
"馆陶": "101091013",
"魏县": "101091014",
"曲周": "101091015",
"武安": "101091016",
"秦皇岛": "101091101",
"青龙": "101091102",
"昌黎": "101091103",
"抚宁": "101091104",
"卢龙": "101091105",
"北戴河": "101091106",
"太原": "101100101",
"清徐": "101100102",
"阳曲": "101100103",
"娄烦": "101100104",
"太原古交区": "101100105",
"太原北郊": "101100106",
"太原南郊": "101100107",
"大同": "101100201",
"阳高": "101100202",
"大同县": "101100203",
"天镇": "101100204",
"广灵": "101100205",
"灵邱": "101100206",
"浑源": "101100207",
"左云": "101100208",
"阳泉": "101100301",
"盂县": "101100302",
"平定": "101100303",
"晋中": "101100401",
"榆次": "101100402",
"榆社": "101100403",
"左权": "101100404",
"和顺": "101100405",
"昔阳": "101100406",
"寿阳": "101100407",
"太谷": "101100408",
"祁县": "101100409",
"平遥": "101100410",
"灵石": "101100411",
"介休": "101100412",
"长治": "101100501",
"黎城": "101100502",
"屯留": "101100503",
"潞城": "101100504",
"襄垣": "101100505",
"平顺": "101100506",
"武乡": "101100507",
"沁县": "101100508",
"长子": "101100509",
"沁源": "101100510",
"壶关": "101100511",
"晋城": "101100601",
"沁水": "101100602",
"阳城": "101100603",
"陵川": "101100604",
"高平": "101100605",
"临汾": "101100701",
"曲沃": "101100702",
"永和": "101100703",
"隰县": "101100704",
"大宁": "101100705",
"吉县": "101100706",
"襄汾": "101100707",
"蒲县": "101100708",
"汾西": "101100709",
"洪洞": "101100710",
"霍州": "101100711",
"乡宁": "101100712",
"翼城": "101100713",
"侯马": "101100714",
"浮山": "101100715",
"安泽": "101100716",
"古县": "101100717",
"运城": "101100801",
"临猗": "101100802",
"稷山": "101100803",
"万荣": "101100804",
"河津": "101100805",
"新绛": "101100806",
"绛县": "101100807",
"闻喜": "101100808",
"垣曲": "101100809",
"永济": "101100810",
"芮城": "101100811",
"夏县": "101100812",
"平陆": "101100813",
"朔州": "101100901",
"平鲁": "101100902",
"山阴": "101100903",
"右玉": "101100904",
"应县": "101100905",
"怀仁": "101100906",
"忻州": "101101001",
"定襄": "101101002",
"五台县豆村": "101101003",
"河曲": "101101004",
"偏关": "101101005",
"神池": "101101006",
"宁武": "101101007",
"代县": "101101008",
"繁峙": "101101009",
"五台山": "101101010",
"保德": "101101011",
"静乐": "101101012",
"岢岚": "101101013",
"五寨": "101101014",
"原平": "101101015",
"吕梁": "101101100",
"离石": "101101101",
"临县": "101101102",
"兴县": "101101103",
"岚县": "101101104",
"柳林": "101101105",
"石楼": "101101106",
"方山": "101101107",
"交口": "101101108",
"中阳": "101101109",
"孝义": "101101110",
"汾阳": "101101111",
"文水": "101101112",
"交城": "101101113",
"西安": "101110101",
"长安": "101110102",
"临潼": "101110103",
"蓝田": "101110104",
"周至": "101110105",
"户县": "101110106",
"高陵": "101110107",
"杨凌": "101110108",
"咸阳": "101110200",
"三原": "101110201",
"礼泉": "101110202",
"永寿": "101110203",
"淳化": "101110204",
"泾阳": "101110205",
"武功": "101110206",
"乾县": "101110207",
"彬县": "101110208",
"长武": "101110209",
"旬邑": "101110210",
"兴平": "101110211",
"延安": "101110300",
"延长": "101110301",
"延川": "101110302",
"子长": "101110303",
"宜川": "101110304",
"富县": "101110305",
"志丹": "101110306",
"安塞": "101110307",
"甘泉": "101110308",
"洛川": "101110309",
"黄陵": "101110310",
"黄龙": "101110311",
"吴起": "101110312",
"榆林": "101110401",
"府谷": "101110402",
"神木": "101110403",
"佳县": "101110404",
"定边": "101110405",
"靖边": "101110406",
"横山": "101110407",
"米脂": "101110408",
"子洲": "101110409",
"绥德": "101110410",
"吴堡": "101110411",
"清涧": "101110412",
"渭南": "101110501",
"华县": "101110502",
"潼关": "101110503",
"大荔": "101110504",
"白水": "101110505",
"富平": "101110506",
"蒲城": "101110507",
"澄城": "101110508",
"合阳": "101110509",
"韩城": "101110510",
"华阴": "101110511",
"华山": "101110512",
"商洛": "101110601",
"洛南": "101110602",
"柞水": "101110603",
"镇安": "101110605",
"丹凤": "101110606",
"商南": "101110607",
"山阳": "101110608",
"安康": "101110701",
"紫阳": "101110702",
"石泉": "101110703",
"汉阴": "101110704",
"旬阳": "101110705",
"岚皋": "101110706",
"平利": "101110707",
"白河": "101110708",
"镇坪": "101110709",
"宁陕": "101110710",
"汉中": "101110801",
"略阳": "101110802",
"勉县": "101110803",
"留坝": "101110804",
"洋县": "101110805",
"城固": "101110806",
"西乡": "101110807",
"佛坪": "101110808",
"宁强": "101110809",
"南郑": "101110810",
"镇巴": "101110811",
"宝鸡": "101110901",
"宝鸡县": "101110902",
"千阳": "101110903",
"麟游": "101110904",
"岐山": "101110905",
"凤翔": "101110906",
"扶风": "101110907",
"眉县": "101110908",
"太白": "101110909",
"凤县": "101110910",
"陇县": "101110911",
"铜川": "101111001",
"耀县": "101111002",
"宜君": "101111003",
"济南": "101120101",
"长清": "101120102",
"商河": "101120103",
"章丘": "101120104",
"平阴": "101120105",
"济阳": "101120106",
"青岛": "101120201",
"崂山": "101120202",
"潮连岛": "101120203",
"即墨": "101120204",
"胶州": "101120205",
"胶南": "101120206",
"莱西": "101120207",
"平度": "101120208",
"淄博": "101120301",
"淄川": "101120302",
"博山": "101120303",
"高青": "101120304",
"周村": "101120305",
"沂源": "101120306",
"桓台": "101120307",
"临淄": "101120308",
"德州": "101120401",
"武城": "101120402",
"临邑": "101120403",
"陵县": "101120404",
"齐河": "101120405",
"乐陵": "101120406",
"庆云": "101120407",
"平原": "101120408",
"宁津": "101120409",
"夏津": "101120410",
"禹城": "101120411",
"烟台": "101120501",
"莱州": "101120502",
"长岛": "101120503",
"蓬莱": "101120504",
"龙口": "101120505",
"招远": "101120506",
"栖霞": "101120507",
"福山": "101120508",
"牟平": "101120509",
"莱阳": "101120510",
"海阳": "101120511",
"千里岩": "101120512",
"潍坊": "101120601",
"青州": "101120602",
"寿光": "101120603",
"临朐": "101120604",
"昌乐": "101120605",
"昌邑": "101120606",
"安丘": "101120607",
"高密": "101120608",
"诸城": "101120609",
"济宁": "101120701",
"嘉祥": "101120702",
"微山": "101120703",
"鱼台": "101120704",
"兖州": "101120705",
"金乡": "101120706",
"汶上": "101120707",
"泗水": "101120708",
"梁山": "101120709",
"曲阜": "101120710",
"邹城": "101120711",
"泰安": "101120801",
"新泰": "101120802",
"泰山": "101120803",
"肥城": "101120804",
"东平": "101120805",
"宁阳": "101120806",
"临沂": "101120901",
"莒南": "101120902",
"沂南": "101120903",
"苍山": "101120904",
"临沭": "101120905",
"郯城": "101120906",
"蒙阴": "101120907",
"平邑": "101120908",
"费县": "101120909",
"沂水": "101120910",
"马站": "101120911",
"菏泽": "101121001",
"鄄城": "101121002",
"郓城": "101121003",
"东明": "101121004",
"定陶": "101121005",
"巨野": "101121006",
"曹县": "101121007",
"成武": "101121008",
"单县": "101121009",
"滨州": "101121101",
"博兴": "101121102",
"无棣": "101121103",
"阳信": "101121104",
"惠民": "101121105",
"沾化": "101121106",
"邹平": "101121107",
"东营": "101121201",
"河口": "101121202",
"垦利": "101121203",
"利津": "101121204",
"广饶": "101121205",
"威海": "101121301",
"文登": "101121302",
"荣成": "101121303",
"乳山": "101121304",
"成山头": "101121305",
"石岛": "101121306",
"枣庄": "101121401",
"薛城": "101121402",
"峄城": "101121403",
"台儿庄": "101121404",
"滕州": "101121405",
"日照": "101121501",
"五莲": "101121502",
"莒县": "101121503",
"莱芜": "101121601",
"聊城": "101121701",
"冠县": "101121702",
"阳谷": "101121703",
"高唐": "101121704",
"茌平": "101121705",
"东阿": "101121706",
"临清": "101121707",
"朝城": "101121708",
"莘县": "101121709",
"乌鲁木齐": "101130101",
"蔡家湖": "101130102",
"小渠子": "101130103",
"巴仑台": "101130104",
"达坂城": "101130105",
"十三间房气象站": "101130106",
"天山大西沟": "101130107",
"乌鲁木齐牧试站": "101130108",
"白杨沟": "101130110",
"克拉玛依": "101130201",
"石河子": "101130301",
"炮台": "101130302",
"莫索湾": "101130303",
"乌兰乌苏": "101130304",
"昌吉": "101130401",
"呼图壁": "101130402",
"米泉": "101130403",
"阜康": "101130404",
"吉木萨尔": "101130405",
"奇台": "101130406",
"玛纳斯": "101130407",
"木垒": "101130408",
"北塔山": "101130409",
"吐鲁番": "101130501",
"托克逊": "101130502",
"吐鲁番东坎": "101130503",
"鄯善": "101130504",
"红柳河": "101130505",
"库尔勒": "101130601",
"轮台": "101130602",
"尉犁": "101130603",
"若羌": "101130604",
"且末": "101130605",
"和静": "101130606",
"焉耆": "101130607",
"和硕": "101130608",
"库米什": "101130609",
"巴音布鲁克": "101130610",
"铁干里克": "101130611",
"博湖": "101130612",
"塔中": "101130613",
"阿拉尔": "101130701",
"阿克苏": "101130801",
"乌什": "101130802",
"温宿": "101130803",
"拜城": "101130804",
"新和": "101130805",
"沙雅": "101130806",
"库车": "101130807",
"柯坪": "101130808",
"阿瓦提": "101130809",
"喀什": "101130901",
"英吉沙": "101130902",
"塔什库尔干": "101130903",
"麦盖提": "101130904",
"莎车": "101130905",
"叶城": "101130906",
"泽普": "101130907",
"巴楚": "101130908",
"岳普湖": "101130909",
"伽师": "101130910",
"伊宁": "101131001",
"察布查尔": "101131002",
"尼勒克": "101131003",
"伊宁县": "101131004",
"巩留": "101131005",
"新源": "101131006",
"昭苏": "101131007",
"特克斯": "101131008",
"霍城": "101131009",
"霍尔果斯": "101131010",
"塔城": "101131101",
"裕民": "101131102",
"额敏": "101131103",
"和布克赛尔": "101131104",
"托里": "101131105",
"乌苏": "101131106",
"沙湾": "101131107",
"和丰": "101131108",
"哈密": "101131201",
"沁城": "101131202",
"巴里坤": "101131203",
"伊吾": "101131204",
"淖毛湖": "101131205",
"和田": "101131301",
"皮山": "101131302",
"策勒": "101131303",
"墨玉": "101131304",
"洛浦": "101131305",
"民丰": "101131306",
"于田": "101131307",
"阿勒泰": "101131401",
"哈巴河": "101131402",
"一八五团": "101131403",
"黑山头": "101131404",
"吉木乃": "101131405",
"布尔津": "101131406",
"福海": "101131407",
"富蕴": "101131408",
"青河": "101131409",
"安德河": "101131410",
"阿图什": "101131501",
"乌恰": "101131502",
"阿克陶": "101131503",
"阿合奇": "101131504",
"吐尔尕特": "101131505",
"博乐": "101131601",
"温泉": "101131602",
"精河": "101131603",
"阿拉山口": "101131606",
"拉萨": "101140101",
"当雄": "101140102",
"尼木": "101140103",
"墨竹贡卡": "101140104",
"日喀则": "101140201",
"拉孜": "101140202",
"南木林": "101140203",
"聂拉木": "101140204",
"定日": "101140205",
"江孜": "101140206",
"帕里": "101140207",
"山南": "101140301",
"贡嘎": "101140302",
"琼结": "101140303",
"加查": "101140304",
"浪卡子": "101140305",
"错那": "101140306",
"隆子": "101140307",
"泽当": "101140308",
"林芝": "101140401",
"波密": "101140402",
"米林": "101140403",
"察隅": "101140404",
"昌都": "101140501",
"丁青": "101140502",
"类乌齐": "101140503",
"洛隆": "101140504",
"左贡": "101140505",
"芒康": "101140506",
"八宿": "101140507",
"那曲": "101140601",
"嘉黎": "101140603",
"班戈": "101140604",
"安多": "101140605",
"索县": "101140606",
"比如": "101140607",
"阿里": "101140701",
"改则": "101140702",
"申扎": "101140703",
"狮泉河": "101140704",
"普兰": "101140705",
"西宁": "101150101",
"大通": "101150102",
"湟源": "101150103",
"湟中": "101150104",
"铁卜加": "101150105",
"铁卜加寺": "101150106",
"中心站": "101150107",
"海东": "101150201",
"乐都": "101150202",
"民和": "101150203",
"互助": "101150204",
"化隆": "101150205",
"循化": "101150206",
"冷湖": "101150207",
"平安": "101150208",
"黄南": "101150301",
"尖扎": "101150302",
"泽库": "101150303",
"海南": "101150401",
"江西沟": "101150402",
"贵德": "101150404",
"河卡": "101150405",
"兴海": "101150406",
"贵南": "101150407",
"同德": "101150408",
"共和": "101150409",
"果洛": "101150501",
"班玛": "101150502",
"甘德": "101150503",
"达日": "101150504",
"久治": "101150505",
"玛多": "101150506",
"玛沁": "101150508",
"玉树": "101150601",
"托托河": "101150602",
"治多": "101150603",
"杂多": "101150604",
"囊谦": "101150605",
"曲麻莱": "101150606",
"海西": "101150701",
"格尔木": "101150702",
"察尔汉": "101150703",
"野牛沟": "101150704",
"五道梁": "101150705",
"小灶火": "101150706",
"天峻": "101150708",
"乌兰": "101150709",
"都兰": "101150710",
"诺木洪": "101150711",
"茫崖": "101150712",
"大柴旦": "101150713",
"茶卡": "101150714",
"香日德": "101150715",
"德令哈": "101150716",
"海北": "101150801",
"门源": "101150802",
"祁连": "101150803",
"海晏": "101150804",
"托勒": "101150805",
"刚察": "101150806",
"兰州": "101160101",
"皋兰": "101160102",
"永登": "101160103",
"榆中": "101160104",
"定西": "101160201",
"通渭": "101160202",
"陇西": "101160203",
"渭源": "101160204",
"临洮": "101160205",
"漳县": "101160206",
"岷县": "101160207",
"安定": "101160208",
"平凉": "101160301",
"泾川": "101160302",
"灵台": "101160303",
"崇信": "101160304",
"华亭": "101160305",
"庄浪": "101160306",
"静宁": "101160307",
"崆峒": "101160308",
"庆阳": "101160401",
"西峰": "101160402",
"环县": "101160403",
"华池": "101160404",
"合水": "101160405",
"正宁": "101160406",
"宁县": "101160407",
"镇原": "101160408",
"庆城": "101160409",
"武威": "101160501",
"民勤": "101160502",
"古浪": "101160503",
"乌鞘岭": "101160504",
"天祝": "101160505",
"金昌": "101160601",
"永昌": "101160602",
"张掖": "101160701",
"肃南": "101160702",
"民乐": "101160703",
"临泽": "101160704",
"高台": "101160705",
"山丹": "101160706",
"酒泉": "101160801",
"鼎新": "101160802",
"金塔": "101160803",
"马鬃山": "101160804",
"瓜州": "101160805",
"肃北": "101160806",
"玉门镇": "101160807",
"敦煌": "101160808",
"天水": "101160901",
"北道区": "101160902",
"清水": "101160903",
"秦安": "101160904",
"甘谷": "101160905",
"武山": "101160906",
"张家川": "101160907",
"麦积": "101160908",
"武都": "101161001",
"成县": "101161002",
"文县": "101161003",
"宕昌": "101161004",
"康县": "101161005",
"西和": "101161006",
"礼县": "101161007",
"徽县": "101161008",
"两当": "101161009",
"临夏": "101161101",
"康乐": "101161102",
"永靖":