UNPKG

@mixly/arduino-avr

Version:
1,601 lines (1,572 loc) 103 kB
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", "永靖":