diff --git a/u3d-ShanDongVirtualPowerPlant/.vs/u3d-ShanDongVirtualPowerPlant/v17/.suo b/u3d-ShanDongVirtualPowerPlant/.vs/u3d-ShanDongVirtualPowerPlant/v17/.suo
index 373530b..c08e79b 100644
Binary files a/u3d-ShanDongVirtualPowerPlant/.vs/u3d-ShanDongVirtualPowerPlant/v17/.suo and b/u3d-ShanDongVirtualPowerPlant/.vs/u3d-ShanDongVirtualPowerPlant/v17/.suo differ
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scenes/Main.unity b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scenes/Main.unity
index 82b3bab..2dbe2a0 100644
--- a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scenes/Main.unity
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scenes/Main.unity
@@ -359,6 +359,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &75881470
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 75881461}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3708
+ cityName: "\u6D4E\u5B81\u5E02"
--- !u!1 &95057806 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -1108912704254995958, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -799,6 +813,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &192638119
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 192638110}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3717
+ cityName: "\u83CF\u6CFD\u5E02"
--- !u!1 &192745190 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -6215670793729855374, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -1544,6 +1572,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &417525082
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 417525073}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3706
+ cityName: "\u70DF\u53F0\u5E02"
--- !u!1 &469512066
GameObject:
m_ObjectHideFlags: 0
@@ -1719,6 +1761,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &499603013
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 499603004}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3709
+ cityName: "\u6CF0\u5B89\u5E02"
--- !u!1 &550665370
GameObject:
m_ObjectHideFlags: 0
@@ -2150,6 +2206,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &829915765
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 829915756}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3707
+ cityName: "\u6F4D\u574A\u5E02"
--- !u!1 &832575517
GameObject:
m_ObjectHideFlags: 0
@@ -2681,6 +2751,10 @@ PrefabInstance:
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1143717409}
- targetCorrespondingSourceObject: {fileID: -1361466933073568924, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2689,6 +2763,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 980388497}
+ - targetCorrespondingSourceObject: {fileID: -1361466933073568924, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 980388501}
- targetCorrespondingSourceObject: {fileID: 7910778940054218449, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2697,6 +2775,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 923142887}
+ - targetCorrespondingSourceObject: {fileID: 7910778940054218449, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 923142891}
- targetCorrespondingSourceObject: {fileID: 4610609447743062514, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2705,6 +2787,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1358806016}
+ - targetCorrespondingSourceObject: {fileID: 4610609447743062514, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1358806020}
- targetCorrespondingSourceObject: {fileID: -6799787392615277207, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2713,6 +2799,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1601850661}
+ - targetCorrespondingSourceObject: {fileID: -6799787392615277207, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1601850665}
- targetCorrespondingSourceObject: {fileID: 5769370776131136003, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2721,6 +2811,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 829915761}
+ - targetCorrespondingSourceObject: {fileID: 5769370776131136003, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 829915765}
- targetCorrespondingSourceObject: {fileID: -2055229545970525513, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2729,6 +2823,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1860255670}
+ - targetCorrespondingSourceObject: {fileID: -2055229545970525513, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1860255674}
- targetCorrespondingSourceObject: {fileID: -5371869996505673154, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2737,6 +2835,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 417525078}
+ - targetCorrespondingSourceObject: {fileID: -5371869996505673154, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 417525082}
- targetCorrespondingSourceObject: {fileID: -6468719678675947214, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2745,6 +2847,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1169521373}
+ - targetCorrespondingSourceObject: {fileID: -6468719678675947214, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1169521377}
- targetCorrespondingSourceObject: {fileID: 3992641925819796629, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2753,6 +2859,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1317153133}
+ - targetCorrespondingSourceObject: {fileID: 3992641925819796629, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1317153137}
- targetCorrespondingSourceObject: {fileID: -7515063161532950506, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2761,6 +2871,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1775494365}
+ - targetCorrespondingSourceObject: {fileID: -7515063161532950506, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1775494369}
- targetCorrespondingSourceObject: {fileID: 5280565503802925455, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2769,6 +2883,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1126421823}
+ - targetCorrespondingSourceObject: {fileID: 5280565503802925455, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1126421827}
- targetCorrespondingSourceObject: {fileID: -2626987921457855494, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2777,6 +2895,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1292424843}
+ - targetCorrespondingSourceObject: {fileID: -2626987921457855494, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1292424847}
- targetCorrespondingSourceObject: {fileID: -1092518748555341945, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2785,6 +2907,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 499603009}
+ - targetCorrespondingSourceObject: {fileID: -1092518748555341945, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 499603013}
- targetCorrespondingSourceObject: {fileID: -6674957004345625353, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2793,6 +2919,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 75881466}
+ - targetCorrespondingSourceObject: {fileID: -6674957004345625353, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 75881470}
- targetCorrespondingSourceObject: {fileID: 5114964521964791915, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2801,6 +2931,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 1868312359}
+ - targetCorrespondingSourceObject: {fileID: 5114964521964791915, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 1868312363}
- targetCorrespondingSourceObject: {fileID: -4720465257169799636, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
type: 3}
insertIndex: -1
@@ -2809,6 +2943,10 @@ PrefabInstance:
type: 3}
insertIndex: -1
addedObject: {fileID: 192638115}
+ - targetCorrespondingSourceObject: {fileID: -4720465257169799636, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 192638119}
m_SourcePrefab: {fileID: 100100000, guid: 97f3a396ac8b2ca4286621a12e8c1e5a, type: 3}
--- !u!1 &880952392 stripped
GameObject:
@@ -2890,6 +3028,12 @@ MeshCollider:
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: -1411346156872051656, guid: b16821147ecd671449621c2d8bfef6ef, type: 3}
+--- !u!1 &902120096 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
+ type: 3}
+ m_PrefabInstance: {fileID: 876039990}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &923142882 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 7910778940054218449, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
@@ -2930,6 +3074,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &923142891
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 923142882}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3705
+ cityName: "\u4E1C\u8425\u5E02"
--- !u!1 &940510565 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3301920413345050528, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -3056,6 +3214,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &980388501
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 980388492}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3716
+ cityName: "\u6EE8\u5DDE\u5E02"
--- !u!1 &1024063314 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -1004174979981385214, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -3256,6 +3428,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1126421827
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1126421818}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3711
+ cityName: "\u65E5\u7167\u5E02"
--- !u!1 &1127492560 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 299867997924674309, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -3342,6 +3528,1406 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 876039990}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &1143717409
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 902120096}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9ed0e77789977cb4a9a95db4c9afecd0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ manager:
+ cityItems:
+ - divisionNumber: 37
+ districtName: "\u5C71\u4E1C\u7701"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber:
+ cityLevelName:
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 1
+ - divisionNumber: 3701
+ districtName: "\u6D4E\u5357\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370102
+ districtName: "\u5386\u4E0B\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370102
+ districtLevelName: "\u5386\u4E0B\u533A"
+ level: 3
+ - divisionNumber: 370103
+ districtName: "\u5E02\u4E2D\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370103
+ districtLevelName: "\u5E02\u4E2D\u533A"
+ level: 3
+ - divisionNumber: 370104
+ districtName: "\u69D0\u836B\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370104
+ districtLevelName: "\u69D0\u836B\u533A"
+ level: 3
+ - divisionNumber: 370105
+ districtName: "\u5929\u6865\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370105
+ districtLevelName: "\u5929\u6865\u533A"
+ level: 3
+ - divisionNumber: 370112
+ districtName: "\u5386\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370112
+ districtLevelName: "\u5386\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370113
+ districtName: "\u957F\u6E05\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370113
+ districtLevelName: "\u957F\u6E05\u533A"
+ level: 3
+ - divisionNumber: 370114
+ districtName: "\u7AE0\u4E18\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370114
+ districtLevelName: "\u7AE0\u4E18\u533A"
+ level: 3
+ - divisionNumber: 370115
+ districtName: "\u6D4E\u9633\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370115
+ districtLevelName: "\u6D4E\u9633\u533A"
+ level: 3
+ - divisionNumber: 370116
+ districtName: "\u83B1\u829C\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370116
+ districtLevelName: "\u83B1\u829C\u533A"
+ level: 3
+ - divisionNumber: 370117
+ districtName: "\u94A2\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370117
+ districtLevelName: "\u94A2\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370124
+ districtName: "\u5E73\u9634\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370124
+ districtLevelName: "\u5E73\u9634\u53BF"
+ level: 3
+ - divisionNumber: 370126
+ districtName: "\u5546\u6CB3\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3701
+ cityLevelName: "\u6D4E\u5357\u5E02"
+ districtLevelDivisionNumber: 370126
+ districtLevelName: "\u5546\u6CB3\u53BF"
+ level: 3
+ - divisionNumber: 3702
+ districtName: "\u9752\u5C9B\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370202
+ districtName: "\u5E02\u5357\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370202
+ districtLevelName: "\u5E02\u5357\u533A"
+ level: 3
+ - divisionNumber: 370203
+ districtName: "\u5E02\u5317\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370203
+ districtLevelName: "\u5E02\u5317\u533A"
+ level: 3
+ - divisionNumber: 370211
+ districtName: "\u9EC4\u5C9B\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370211
+ districtLevelName: "\u9EC4\u5C9B\u533A"
+ level: 3
+ - divisionNumber: 370212
+ districtName: "\u5D02\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370212
+ districtLevelName: "\u5D02\u5C71\u533A"
+ level: 3
+ - divisionNumber: 370213
+ districtName: "\u674E\u6CA7\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370213
+ districtLevelName: "\u674E\u6CA7\u533A"
+ level: 3
+ - divisionNumber: 370214
+ districtName: "\u57CE\u9633\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370214
+ districtLevelName: "\u57CE\u9633\u533A"
+ level: 3
+ - divisionNumber: 370215
+ districtName: "\u5373\u58A8\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370215
+ districtLevelName: "\u5373\u58A8\u533A"
+ level: 3
+ - divisionNumber: 370281
+ districtName: "\u80F6\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370281
+ districtLevelName: "\u80F6\u5DDE\u5E02"
+ level: 3
+ - divisionNumber: 370283
+ districtName: "\u5E73\u5EA6\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370283
+ districtLevelName: "\u5E73\u5EA6\u5E02"
+ level: 3
+ - divisionNumber: 370285
+ districtName: "\u83B1\u897F\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3702
+ cityLevelName: "\u9752\u5C9B\u5E02"
+ districtLevelDivisionNumber: 370285
+ districtLevelName: "\u83B1\u897F\u5E02"
+ level: 3
+ - divisionNumber: 3703
+ districtName: "\u6DC4\u535A\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370302
+ districtName: "\u6DC4\u5DDD\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370302
+ districtLevelName: "\u6DC4\u5DDD\u533A"
+ level: 3
+ - divisionNumber: 370303
+ districtName: "\u5F20\u5E97\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370303
+ districtLevelName: "\u5F20\u5E97\u533A"
+ level: 3
+ - divisionNumber: 370304
+ districtName: "\u535A\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370304
+ districtLevelName: "\u535A\u5C71\u533A"
+ level: 3
+ - divisionNumber: 370305
+ districtName: "\u4E34\u6DC4\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370305
+ districtLevelName: "\u4E34\u6DC4\u533A"
+ level: 3
+ - divisionNumber: 370306
+ districtName: "\u5468\u6751\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370306
+ districtLevelName: "\u5468\u6751\u533A"
+ level: 3
+ - divisionNumber: 370321
+ districtName: "\u6853\u53F0\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370321
+ districtLevelName: "\u6853\u53F0\u53BF"
+ level: 3
+ - divisionNumber: 370322
+ districtName: "\u9AD8\u9752\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370322
+ districtLevelName: "\u9AD8\u9752\u53BF"
+ level: 3
+ - divisionNumber: 370323
+ districtName: "\u6C82\u6E90\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3703
+ cityLevelName: "\u6DC4\u535A\u5E02"
+ districtLevelDivisionNumber: 370323
+ districtLevelName: "\u6C82\u6E90\u53BF"
+ level: 3
+ - divisionNumber: 3704
+ districtName: "\u67A3\u5E84\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370402
+ districtName: "\u5E02\u4E2D\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370402
+ districtLevelName: "\u5E02\u4E2D\u533A"
+ level: 3
+ - divisionNumber: 370403
+ districtName: "\u859B\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370403
+ districtLevelName: "\u859B\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370404
+ districtName: "\u5CC4\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370404
+ districtLevelName: "\u5CC4\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370405
+ districtName: "\u53F0\u513F\u5E84\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370405
+ districtLevelName: "\u53F0\u513F\u5E84\u533A"
+ level: 3
+ - divisionNumber: 370406
+ districtName: "\u5C71\u4EAD\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370406
+ districtLevelName: "\u5C71\u4EAD\u533A"
+ level: 3
+ - divisionNumber: 370481
+ districtName: "\u6ED5\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3704
+ cityLevelName: "\u67A3\u5E84\u5E02"
+ districtLevelDivisionNumber: 370481
+ districtLevelName: "\u6ED5\u5DDE\u5E02"
+ level: 3
+ - divisionNumber: 3705
+ districtName: "\u4E1C\u8425\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370502
+ districtName: "\u4E1C\u8425\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber: 370502
+ districtLevelName: "\u4E1C\u8425\u533A"
+ level: 3
+ - divisionNumber: 370503
+ districtName: "\u6CB3\u53E3\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber: 370503
+ districtLevelName: "\u6CB3\u53E3\u533A"
+ level: 3
+ - divisionNumber: 370505
+ districtName: "\u57A6\u5229\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber: 370505
+ districtLevelName: "\u57A6\u5229\u533A"
+ level: 3
+ - divisionNumber: 370522
+ districtName: "\u5229\u6D25\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber: 370522
+ districtLevelName: "\u5229\u6D25\u53BF"
+ level: 3
+ - divisionNumber: 370523
+ districtName: "\u5E7F\u9976\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3705
+ cityLevelName: "\u4E1C\u8425\u5E02"
+ districtLevelDivisionNumber: 370523
+ districtLevelName: "\u5E7F\u9976\u53BF"
+ level: 3
+ - divisionNumber: 3706
+ districtName: "\u70DF\u53F0\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370602
+ districtName: "\u829D\u7F58\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370602
+ districtLevelName: "\u829D\u7F58\u533A"
+ level: 3
+ - divisionNumber: 370611
+ districtName: "\u798F\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370611
+ districtLevelName: "\u798F\u5C71\u533A"
+ level: 3
+ - divisionNumber: 370612
+ districtName: "\u725F\u5E73\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370612
+ districtLevelName: "\u725F\u5E73\u533A"
+ level: 3
+ - divisionNumber: 370613
+ districtName: "\u83B1\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370613
+ districtLevelName: "\u83B1\u5C71\u533A"
+ level: 3
+ - divisionNumber: 370634
+ districtName: "\u957F\u5C9B\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370634
+ districtLevelName: "\u957F\u5C9B\u53BF"
+ level: 3
+ - divisionNumber: 370681
+ districtName: "\u9F99\u53E3\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370681
+ districtLevelName: "\u9F99\u53E3\u5E02"
+ level: 3
+ - divisionNumber: 370682
+ districtName: "\u83B1\u9633\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370682
+ districtLevelName: "\u83B1\u9633\u5E02"
+ level: 3
+ - divisionNumber: 370683
+ districtName: "\u83B1\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370683
+ districtLevelName: "\u83B1\u5DDE\u5E02"
+ level: 3
+ - divisionNumber: 370684
+ districtName: "\u84EC\u83B1\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370684
+ districtLevelName: "\u84EC\u83B1\u5E02"
+ level: 3
+ - divisionNumber: 370685
+ districtName: "\u62DB\u8FDC\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370685
+ districtLevelName: "\u62DB\u8FDC\u5E02"
+ level: 3
+ - divisionNumber: 370686
+ districtName: "\u6816\u971E\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370686
+ districtLevelName: "\u6816\u971E\u5E02"
+ level: 3
+ - divisionNumber: 370687
+ districtName: "\u6D77\u9633\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3706
+ cityLevelName: "\u70DF\u53F0\u5E02"
+ districtLevelDivisionNumber: 370687
+ districtLevelName: "\u6D77\u9633\u5E02"
+ level: 3
+ - divisionNumber: 3707
+ districtName: "\u6F4D\u574A\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370702
+ districtName: "\u6F4D\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370702
+ districtLevelName: "\u6F4D\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370703
+ districtName: "\u5BD2\u4EAD\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370703
+ districtLevelName: "\u5BD2\u4EAD\u533A"
+ level: 3
+ - divisionNumber: 370704
+ districtName: "\u574A\u5B50\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370704
+ districtLevelName: "\u574A\u5B50\u533A"
+ level: 3
+ - divisionNumber: 370705
+ districtName: "\u594E\u6587\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370705
+ districtLevelName: "\u594E\u6587\u533A"
+ level: 3
+ - divisionNumber: 370724
+ districtName: "\u4E34\u6710\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370724
+ districtLevelName: "\u4E34\u6710\u53BF"
+ level: 3
+ - divisionNumber: 370725
+ districtName: "\u660C\u4E50\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370725
+ districtLevelName: "\u660C\u4E50\u53BF"
+ level: 3
+ - divisionNumber: 370781
+ districtName: "\u9752\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370781
+ districtLevelName: "\u9752\u5DDE\u5E02"
+ level: 3
+ - divisionNumber: 370782
+ districtName: "\u8BF8\u57CE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370782
+ districtLevelName: "\u8BF8\u57CE\u5E02"
+ level: 3
+ - divisionNumber: 370783
+ districtName: "\u5BFF\u5149\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370783
+ districtLevelName: "\u5BFF\u5149\u5E02"
+ level: 3
+ - divisionNumber: 370784
+ districtName: "\u5B89\u4E18\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370784
+ districtLevelName: "\u5B89\u4E18\u5E02"
+ level: 3
+ - divisionNumber: 370785
+ districtName: "\u9AD8\u5BC6\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370785
+ districtLevelName: "\u9AD8\u5BC6\u5E02"
+ level: 3
+ - divisionNumber: 370786
+ districtName: "\u660C\u9091\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3707
+ cityLevelName: "\u6F4D\u574A\u5E02"
+ districtLevelDivisionNumber: 370786
+ districtLevelName: "\u660C\u9091\u5E02"
+ level: 3
+ - divisionNumber: 3708
+ districtName: "\u6D4E\u5B81\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370811
+ districtName: "\u4EFB\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370811
+ districtLevelName: "\u4EFB\u57CE\u533A"
+ level: 3
+ - divisionNumber: 370812
+ districtName: "\u5156\u5DDE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370812
+ districtLevelName: "\u5156\u5DDE\u533A"
+ level: 3
+ - divisionNumber: 370826
+ districtName: "\u5FAE\u5C71\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370826
+ districtLevelName: "\u5FAE\u5C71\u53BF"
+ level: 3
+ - divisionNumber: 370827
+ districtName: "\u9C7C\u53F0\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370827
+ districtLevelName: "\u9C7C\u53F0\u53BF"
+ level: 3
+ - divisionNumber: 370828
+ districtName: "\u91D1\u4E61\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370828
+ districtLevelName: "\u91D1\u4E61\u53BF"
+ level: 3
+ - divisionNumber: 370829
+ districtName: "\u5609\u7965\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370829
+ districtLevelName: "\u5609\u7965\u53BF"
+ level: 3
+ - divisionNumber: 370830
+ districtName: "\u6C76\u4E0A\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370830
+ districtLevelName: "\u6C76\u4E0A\u53BF"
+ level: 3
+ - divisionNumber: 370831
+ districtName: "\u6CD7\u6C34\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370831
+ districtLevelName: "\u6CD7\u6C34\u53BF"
+ level: 3
+ - divisionNumber: 370832
+ districtName: "\u6881\u5C71\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370832
+ districtLevelName: "\u6881\u5C71\u53BF"
+ level: 3
+ - divisionNumber: 370881
+ districtName: "\u66F2\u961C\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370881
+ districtLevelName: "\u66F2\u961C\u5E02"
+ level: 3
+ - divisionNumber: 370883
+ districtName: "\u90B9\u57CE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3708
+ cityLevelName: "\u6D4E\u5B81\u5E02"
+ districtLevelDivisionNumber: 370883
+ districtLevelName: "\u90B9\u57CE\u5E02"
+ level: 3
+ - divisionNumber: 3709
+ districtName: "\u6CF0\u5B89\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 370902
+ districtName: "\u6CF0\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370902
+ districtLevelName: "\u6CF0\u5C71\u533A"
+ level: 3
+ - divisionNumber: 370911
+ districtName: "\u5CB1\u5CB3\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370911
+ districtLevelName: "\u5CB1\u5CB3\u533A"
+ level: 3
+ - divisionNumber: 370921
+ districtName: "\u5B81\u9633\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370921
+ districtLevelName: "\u5B81\u9633\u53BF"
+ level: 3
+ - divisionNumber: 370923
+ districtName: "\u4E1C\u5E73\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370923
+ districtLevelName: "\u4E1C\u5E73\u53BF"
+ level: 3
+ - divisionNumber: 370982
+ districtName: "\u65B0\u6CF0\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370982
+ districtLevelName: "\u65B0\u6CF0\u5E02"
+ level: 3
+ - divisionNumber: 370983
+ districtName: "\u80A5\u57CE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3709
+ cityLevelName: "\u6CF0\u5B89\u5E02"
+ districtLevelDivisionNumber: 370983
+ districtLevelName: "\u80A5\u57CE\u5E02"
+ level: 3
+ - divisionNumber: 3710
+ districtName: "\u5A01\u6D77\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3710
+ cityLevelName: "\u5A01\u6D77\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371002
+ districtName: "\u73AF\u7FE0\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3710
+ cityLevelName: "\u5A01\u6D77\u5E02"
+ districtLevelDivisionNumber: 371002
+ districtLevelName: "\u73AF\u7FE0\u533A"
+ level: 3
+ - divisionNumber: 371003
+ districtName: "\u6587\u767B\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3710
+ cityLevelName: "\u5A01\u6D77\u5E02"
+ districtLevelDivisionNumber: 371003
+ districtLevelName: "\u6587\u767B\u533A"
+ level: 3
+ - divisionNumber: 371082
+ districtName: "\u8363\u6210\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3710
+ cityLevelName: "\u5A01\u6D77\u5E02"
+ districtLevelDivisionNumber: 371082
+ districtLevelName: "\u8363\u6210\u5E02"
+ level: 3
+ - divisionNumber: 371083
+ districtName: "\u4E73\u5C71\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3710
+ cityLevelName: "\u5A01\u6D77\u5E02"
+ districtLevelDivisionNumber: 371083
+ districtLevelName: "\u4E73\u5C71\u5E02"
+ level: 3
+ - divisionNumber: 3711
+ districtName: "\u65E5\u7167\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3711
+ cityLevelName: "\u65E5\u7167\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371102
+ districtName: "\u4E1C\u6E2F\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3711
+ cityLevelName: "\u65E5\u7167\u5E02"
+ districtLevelDivisionNumber: 371102
+ districtLevelName: "\u4E1C\u6E2F\u533A"
+ level: 3
+ - divisionNumber: 371103
+ districtName: "\u5C9A\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3711
+ cityLevelName: "\u65E5\u7167\u5E02"
+ districtLevelDivisionNumber: 371103
+ districtLevelName: "\u5C9A\u5C71\u533A"
+ level: 3
+ - divisionNumber: 371121
+ districtName: "\u4E94\u83B2\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3711
+ cityLevelName: "\u65E5\u7167\u5E02"
+ districtLevelDivisionNumber: 371121
+ districtLevelName: "\u4E94\u83B2\u53BF"
+ level: 3
+ - divisionNumber: 371122
+ districtName: "\u8392\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3711
+ cityLevelName: "\u65E5\u7167\u5E02"
+ districtLevelDivisionNumber: 371122
+ districtLevelName: "\u8392\u53BF"
+ level: 3
+ - divisionNumber: 3713
+ districtName: "\u4E34\u6C82\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371302
+ districtName: "\u5170\u5C71\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371302
+ districtLevelName: "\u5170\u5C71\u533A"
+ level: 3
+ - divisionNumber: 371311
+ districtName: "\u7F57\u5E84\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371311
+ districtLevelName: "\u7F57\u5E84\u533A"
+ level: 3
+ - divisionNumber: 371312
+ districtName: "\u6CB3\u4E1C\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371312
+ districtLevelName: "\u6CB3\u4E1C\u533A"
+ level: 3
+ - divisionNumber: 371321
+ districtName: "\u6C82\u5357\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371321
+ districtLevelName: "\u6C82\u5357\u53BF"
+ level: 3
+ - divisionNumber: 371322
+ districtName: "\u90EF\u57CE\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371322
+ districtLevelName: "\u90EF\u57CE\u53BF"
+ level: 3
+ - divisionNumber: 371323
+ districtName: "\u6C82\u6C34\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371323
+ districtLevelName: "\u6C82\u6C34\u53BF"
+ level: 3
+ - divisionNumber: 371324
+ districtName: "\u5170\u9675\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371324
+ districtLevelName: "\u5170\u9675\u53BF"
+ level: 3
+ - divisionNumber: 371325
+ districtName: "\u8D39\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371325
+ districtLevelName: "\u8D39\u53BF"
+ level: 3
+ - divisionNumber: 371326
+ districtName: "\u5E73\u9091\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371326
+ districtLevelName: "\u5E73\u9091\u53BF"
+ level: 3
+ - divisionNumber: 371327
+ districtName: "\u8392\u5357\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371327
+ districtLevelName: "\u8392\u5357\u53BF"
+ level: 3
+ - divisionNumber: 371328
+ districtName: "\u8499\u9634\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371328
+ districtLevelName: "\u8499\u9634\u53BF"
+ level: 3
+ - divisionNumber: 371329
+ districtName: "\u4E34\u6CAD\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3713
+ cityLevelName: "\u4E34\u6C82\u5E02"
+ districtLevelDivisionNumber: 371329
+ districtLevelName: "\u4E34\u6CAD\u53BF"
+ level: 3
+ - divisionNumber: 3714
+ districtName: "\u5FB7\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371402
+ districtName: "\u5FB7\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371402
+ districtLevelName: "\u5FB7\u57CE\u533A"
+ level: 3
+ - divisionNumber: 371403
+ districtName: "\u9675\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371403
+ districtLevelName: "\u9675\u57CE\u533A"
+ level: 3
+ - divisionNumber: 371422
+ districtName: "\u5B81\u6D25\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371422
+ districtLevelName: "\u5B81\u6D25\u53BF"
+ level: 3
+ - divisionNumber: 371423
+ districtName: "\u5E86\u4E91\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371423
+ districtLevelName: "\u5E86\u4E91\u53BF"
+ level: 3
+ - divisionNumber: 371424
+ districtName: "\u4E34\u9091\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371424
+ districtLevelName: "\u4E34\u9091\u53BF"
+ level: 3
+ - divisionNumber: 371425
+ districtName: "\u9F50\u6CB3\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371425
+ districtLevelName: "\u9F50\u6CB3\u53BF"
+ level: 3
+ - divisionNumber: 371426
+ districtName: "\u5E73\u539F\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371426
+ districtLevelName: "\u5E73\u539F\u53BF"
+ level: 3
+ - divisionNumber: 371427
+ districtName: "\u590F\u6D25\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371427
+ districtLevelName: "\u590F\u6D25\u53BF"
+ level: 3
+ - divisionNumber: 371428
+ districtName: "\u6B66\u57CE\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371428
+ districtLevelName: "\u6B66\u57CE\u53BF"
+ level: 3
+ - divisionNumber: 371481
+ districtName: "\u4E50\u9675\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371481
+ districtLevelName: "\u4E50\u9675\u5E02"
+ level: 3
+ - divisionNumber: 371482
+ districtName: "\u79B9\u57CE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3714
+ cityLevelName: "\u5FB7\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371482
+ districtLevelName: "\u79B9\u57CE\u5E02"
+ level: 3
+ - divisionNumber: 3715
+ districtName: "\u804A\u57CE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371502
+ districtName: "\u4E1C\u660C\u5E9C\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371502
+ districtLevelName: "\u4E1C\u660C\u5E9C\u533A"
+ level: 3
+ - divisionNumber: 371503
+ districtName: "\u830C\u5E73\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371503
+ districtLevelName: "\u830C\u5E73\u533A"
+ level: 3
+ - divisionNumber: 371521
+ districtName: "\u9633\u8C37\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371521
+ districtLevelName: "\u9633\u8C37\u53BF"
+ level: 3
+ - divisionNumber: 371522
+ districtName: "\u8398\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371522
+ districtLevelName: "\u8398\u53BF"
+ level: 3
+ - divisionNumber: 371524
+ districtName: "\u4E1C\u963F\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371524
+ districtLevelName: "\u4E1C\u963F\u53BF"
+ level: 3
+ - divisionNumber: 371525
+ districtName: "\u51A0\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371525
+ districtLevelName: "\u51A0\u53BF"
+ level: 3
+ - divisionNumber: 371526
+ districtName: "\u9AD8\u5510\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371526
+ districtLevelName: "\u9AD8\u5510\u53BF"
+ level: 3
+ - divisionNumber: 371581
+ districtName: "\u4E34\u6E05\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3715
+ cityLevelName: "\u804A\u57CE\u5E02"
+ districtLevelDivisionNumber: 371581
+ districtLevelName: "\u4E34\u6E05\u5E02"
+ level: 3
+ - divisionNumber: 3716
+ districtName: "\u6EE8\u5DDE\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371602
+ districtName: "\u6EE8\u57CE\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371602
+ districtLevelName: "\u6EE8\u57CE\u533A"
+ level: 3
+ - divisionNumber: 371603
+ districtName: "\u6CBE\u5316\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371603
+ districtLevelName: "\u6CBE\u5316\u533A"
+ level: 3
+ - divisionNumber: 371621
+ districtName: "\u60E0\u6C11\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371621
+ districtLevelName: "\u60E0\u6C11\u53BF"
+ level: 3
+ - divisionNumber: 371622
+ districtName: "\u9633\u4FE1\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371622
+ districtLevelName: "\u9633\u4FE1\u53BF"
+ level: 3
+ - divisionNumber: 371623
+ districtName: "\u65E0\u68E3\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371623
+ districtLevelName: "\u65E0\u68E3\u53BF"
+ level: 3
+ - divisionNumber: 371625
+ districtName: "\u535A\u5174\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371625
+ districtLevelName: "\u535A\u5174\u53BF"
+ level: 3
+ - divisionNumber: 371681
+ districtName: "\u90B9\u5E73\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3716
+ cityLevelName: "\u6EE8\u5DDE\u5E02"
+ districtLevelDivisionNumber: 371681
+ districtLevelName: "\u90B9\u5E73\u5E02"
+ level: 3
+ - divisionNumber: 3717
+ districtName: "\u83CF\u6CFD\u5E02"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber:
+ districtLevelName:
+ level: 2
+ - divisionNumber: 371702
+ districtName: "\u7261\u4E39\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371702
+ districtLevelName: "\u7261\u4E39\u533A"
+ level: 3
+ - divisionNumber: 371703
+ districtName: "\u5B9A\u9676\u533A"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371703
+ districtLevelName: "\u5B9A\u9676\u533A"
+ level: 3
+ - divisionNumber: 371721
+ districtName: "\u66F9\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371721
+ districtLevelName: "\u66F9\u53BF"
+ level: 3
+ - divisionNumber: 371722
+ districtName: "\u5355\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371722
+ districtLevelName: "\u5355\u53BF"
+ level: 3
+ - divisionNumber: 371723
+ districtName: "\u6210\u6B66\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371723
+ districtLevelName: "\u6210\u6B66\u53BF"
+ level: 3
+ - divisionNumber: 371724
+ districtName: "\u5DE8\u91CE\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371724
+ districtLevelName: "\u5DE8\u91CE\u53BF"
+ level: 3
+ - divisionNumber: 371725
+ districtName: "\u90D3\u57CE\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371725
+ districtLevelName: "\u90D3\u57CE\u53BF"
+ level: 3
+ - divisionNumber: 371726
+ districtName: "\u9104\u57CE\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371726
+ districtLevelName: "\u9104\u57CE\u53BF"
+ level: 3
+ - divisionNumber: 371728
+ districtName: "\u4E1C\u660E\u53BF"
+ provincialDivisionNumber: 37
+ provinceName: "\u5C71\u4E1C\u7701"
+ cityLevelZoningNumber: 3717
+ cityLevelName: "\u83CF\u6CFD\u5E02"
+ districtLevelDivisionNumber: 371728
+ districtLevelName: "\u4E1C\u660E\u53BF"
+ level: 3
--- !u!1 &1169521368 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -6468719678675947214, guid: 97f3a396ac8b2ca4286621a12e8c1e5a,
@@ -3382,6 +4968,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1169521377
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1169521368}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3703
+ cityName: "\u6DC4\u535A\u5E02"
--- !u!1 &1183314439 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5203518717885548236, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -3915,6 +5515,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1292424847
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1292424838}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3704
+ cityName: "\u67A3\u5E84\u5E02"
--- !u!1 &1295676042 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 6763172887420499369, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -4035,6 +5649,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1317153137
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1317153128}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3713
+ cityName: "\u4E34\u6C82\u5E02"
--- !u!1 &1328013494 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 141641826441659587, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -4257,6 +5885,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1358806020
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1358806011}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3701
+ cityName: "\u6D4E\u5357\u5E02"
--- !u!1 &1377351634 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 5243205814308704031, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -5068,6 +6710,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1601850665
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601850656}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3702
+ cityName: "\u9752\u5C9B\u5E02"
--- !u!1 &1621379511
GameObject:
m_ObjectHideFlags: 0
@@ -5148,6 +6804,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: fe0713e21695e5c44862ca7fa6d3c6a2, type: 3}
m_Name:
m_EditorClassIdentifier:
+ onStation:
+ m_PersistentCalls:
+ m_Calls: []
+ head: Basicc2FiZXI6c2FiZXJfc2VjcmV0
+ token: bearereyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiI3OTEyMTQiLCJ1c2VyX25hbWUiOiJhZG1pbiIsInJlYWxfbmFtZSI6ImFkbWluIiwiYXZhdGFyIjoiIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW4iXSwiY2xpZW50X2lkIjoic2FiZXIiLCJyb2xlX25hbWUiOiJhZG1pbiIsImxpY2Vuc2UiOiJwb3dlcmVkIGJ5IGJheW1heCIsInBvc3RfaWQiOiIxNzgwNDc5NzgwMTM5ODMxMjk3IiwidXNlcl9pZCI6IjE3ODA0Nzk3ODA2ODkyODUxMjIiLCJyb2xlX2lkIjoiMTc4MDQ3OTc3MjU5ODQ3MjcwNSIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiJhZG1pbiIsIm9hdXRoX2lkIjoiIiwiZGV0YWlsIjp7InR5cGUiOiJ3ZWIifSwiZXhwIjoxNzE5Mjg1OTE0LCJkZXB0X2lkIjoiMTc4MDQ3OTc4MDAyNjU4NTA5MCIsImp0aSI6IjNmYTUzZmI1LTBlNGMtNDZhZS04ODkxLTRmMTI5NGNhNjI4NyIsImFjY291bnQiOiJhZG1pbiJ9.zMahp8ijl5jNXYnaXOhSrOXYiKh07_U4PXI48TfPuIg
--- !u!1 &1621389858 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1438324003541281471, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -5585,6 +7246,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1775494369
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1775494360}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3714
+ cityName: "\u5FB7\u5DDE\u5E02"
--- !u!1 &1778679842 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -9059831374832876810, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -5785,6 +7460,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1860255674
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1860255665}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3710
+ cityName: "\u5A01\u6D77\u5E02"
--- !u!1 &1867510285 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -2953785626694593999, guid: b16821147ecd671449621c2d8bfef6ef,
@@ -5865,6 +7554,20 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 351a5c40be44956429ec1892d8e0cbc9, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &1868312363
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1868312354}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c18c3ffce1aeaee47ac54278e811b62d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ distCode: 3715
+ cityName: "\u804A\u57CE\u5E02"
--- !u!1 &1880993109 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 3277845072509216383, guid: b16821147ecd671449621c2d8bfef6ef,
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs
new file mode 100644
index 0000000..2079c80
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs
@@ -0,0 +1,74 @@
+using UnityEngine;
+using UnityEngine.Networking;
+using Newtonsoft.Json;
+using Cysharp.Threading.Tasks;
+using System.Collections.Generic;
+
+///
+/// 异步封装unityWebRequest请求
+///
+public static class AsyncWebReq
+{
+
+ ///
+ /// Get
+ ///
+ ///
+ /// 地址
+ /// 头文件,登录令牌
+ /// token
+ ///
+ public static async UniTask Get(string url, string _hend = null, string _token = null)
+ {
+ UnityWebRequest getRequest = UnityWebRequest.Get(url);
+ if (_hend != null && _token != null)
+ {
+ getRequest.SetRequestHeader("AddHeader", _hend);
+ getRequest.SetRequestHeader("Hulk-Auth", _token);
+ await getRequest.SendWebRequest();
+ }
+ else
+ await getRequest.SendWebRequest();
+#if UNITY_EDITOR
+ Debug.Log("async req : " + getRequest.downloadHandler.text);
+#endif
+
+ T result = JsonConvert.DeserializeObject(getRequest.downloadHandler.text);
+ getRequest.Dispose();
+ return result;
+ }
+ ///
+ /// Post
+ ///
+ ///
+ /// 地址
+ ///
+ ///
+ ///
+ ///
+ public static async UniTask Post(string url, Dictionary _dic, string _hend = null, string _token = null)
+ {
+
+ WWWForm form = new WWWForm();
+ foreach (var item in _dic)
+ {
+ form.AddField(item.Key, item.Value);
+ }
+ var postRequest = UnityWebRequest.Post(url, form);
+ if (_hend != null && _token != null)
+ {
+ postRequest.SetRequestHeader("AddHeader", _hend);
+ postRequest.SetRequestHeader("Hulk-Auth", _token);
+ await postRequest.SendWebRequest();
+ }
+ else
+ await postRequest.SendWebRequest();
+
+#if UNITY_EDITOR
+ Debug.Log("async req : " + postRequest.downloadHandler.text);
+#endif
+ T result = JsonConvert.DeserializeObject(postRequest.downloadHandler.text);
+ postRequest.Dispose();
+ return result;
+ }
+}
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs.meta
new file mode 100644
index 0000000..5966ee8
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/AsyncWebReq.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2ef12d44eecd52a4890e4906ca98ca18
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Bootstrap.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Bootstrap.cs
index 720a873..fe52df8 100644
--- a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Bootstrap.cs
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Bootstrap.cs
@@ -3,7 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
-
+using Adam;
public class Bootstrap : MonoSingleton
@@ -59,6 +59,19 @@ public class Bootstrap : MonoSingleton
private Dictionary _fadeTweens = new Dictionary();
public WebAdapter webAdapter;
+
+ public Dictionary urlDic = new Dictionary();
+
+
+ private void Awake()
+ {
+ string[] data = FileUtil.ReadAllLineFromLocal("WebAddress.json");
+ for (int i = 0; i < data.Length; i++)
+ {
+ string[] urlInfo = data[i].Split("=");
+ urlDic.Add(urlInfo[0], urlInfo[1]);
+ }
+ }
void Start()
{
webAdapter = GetComponent();
@@ -67,14 +80,26 @@ public class Bootstrap : MonoSingleton
cameraRt.OnLimitScroll += SwitchLand;
}
-
+ public bool isLoad = false;
///
/// չʾر
///
///
- public void ShowLandMark(GameObject land)
+ public async void ShowLandMark(GameObject land)
{
+ if (isLoad) return;
+ landMarks.Clear();
+ string distCode = land.GetComponent().distCode;
+ AreaData areaData = await AsyncWebReq.Get($"{urlDic["ͼ"]}{distCode}", webAdapter.head, webAdapter.token);
+ if (!bool.Parse(areaData.success)) return;
+ isLoad = true;
+ for (int i = 0; i < areaData.data.items.Count; i++)
+ {
+ string info = $"{areaData.data.items[i].label}:{areaData.data.items[i].value}{areaData.data.items[i].unit}";
+ landMarks.Add(info);
+ }
+
currentLand = land;
currentLand.GetComponent().materials = select;
landMarkAndInfoCotroller.gameObject.SetActive(true);
@@ -88,6 +113,7 @@ public class Bootstrap : MonoSingleton
///
public void CloseLandMark()
{
+ isLoad = false;
landMarkAndInfoCotroller.gameObject.SetActive(false);
if (currentLand != null)
{
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/CityInfo.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/CityInfo.cs
index f1059de..ff71309 100644
--- a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/CityInfo.cs
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/CityInfo.cs
@@ -1,33 +1,9 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
-public enum CurrentLevel
-{
- ///
- /// ʡ
- ///
- ProvincialCapital,
- ///
- ///
- ///
- City,
- ///
- ///
- ///
- Area
-}
+
public class CityInfo : MonoBehaviour
{
-
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
+ public string distCode;
+ public string cityName;
}
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data.meta
similarity index 100%
rename from u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data.meta
rename to u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data.meta
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data/AreaData.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/AreaData.cs
similarity index 58%
rename from u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data/AreaData.cs
rename to u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/AreaData.cs
index 7ea2b29..d6c8347 100644
--- a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data/AreaData.cs
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/AreaData.cs
@@ -1,25 +1,46 @@
-using System.Collections;
+using System;
using System.Collections.Generic;
-using UnityEngine;
///
/// Ϣ
///
+[Serializable]
public class AreaData
{
///
- ///
+ ///
+ ///
+ public int code;
+ ///
+ ///
+ ///
+ public string success;
+ ///
+ ///
+ ///
+ public Data data;
+ ///
+ /// ɹ
+ ///
+ public string msg;
+
+}
+[Serializable]
+public class Data
+{
+ ///
+ ///
///
public string distCode;
///
- /// ʹ
+ ///
///
public string disName;
///
///
///
public List items;
-
}
+[Serializable]
public class ItemsItem
{
///
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data/AreaData.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/AreaData.cs.meta
similarity index 100%
rename from u3d-ShanDongVirtualPowerPlant/Assets/Adam/Data/AreaData.cs.meta
rename to u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/AreaData.cs.meta
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs
new file mode 100644
index 0000000..db9cf95
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs
@@ -0,0 +1,120 @@
+using Excel;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.IO;
+using UnityEditor;
+using UnityEngine;
+[Serializable]
+public class CityExcelData
+{
+ public CityItem[] cityItems;
+}
+[Serializable]
+public class CityItem
+{
+ ///
+ ///
+ ///
+ public string divisionNumber;
+ ///
+ ///
+ ///
+ public string districtName;
+ ///
+ /// ʡ
+ ///
+ public string provincialDivisionNumber;
+ ///
+ /// ʡ
+ ///
+ public string provinceName;
+ ///
+ /// м
+ ///
+ public string cityLevelZoningNumber;
+ ///
+ /// м
+ ///
+ public string cityLevelName;
+ ///
+ ///
+ ///
+ public string districtLevelDivisionNumber;
+ ///
+ ///
+ ///
+ public string districtLevelName;
+ ///
+ /// 㼶
+ ///
+ public string level;
+}
+
+public class ExcelConfig
+{
+ ///
+ /// excelļеĵ·xecel"Assets/Excels/"
+ ///
+ public static readonly string excelsFolderPath = Application.dataPath + "/Excels/";
+
+ ///
+ /// ExcelתCSļļ·
+ ///
+ public static readonly string assetPath = "Assets/Resources/";
+}
+
+public class ExcelTool
+{
+
+ ///
+ /// ȡݣɶӦ
+ ///
+ /// excelļȫ·
+ /// Item
+ public static CityItem[] CreateItemArrayWithExcel(string filePath)
+ {
+ //ñ
+ int columnNum = 0, rowNum = 0;
+ DataRowCollection collect = ReadExcel(filePath, ref columnNum, ref rowNum);
+
+ //excelĶ壬ڶпʼ
+ CityItem[] array = new CityItem[rowNum - 1];
+ for (int i = 1; i < rowNum; i++)
+ {
+ CityItem item = new CityItem();
+ //ÿе
+ item.divisionNumber = collect[i][0].ToString();
+ item.districtName = collect[i][1].ToString();
+ item.provincialDivisionNumber = collect[i][2].ToString();
+ item.provinceName = collect[i][3].ToString();
+ item.cityLevelZoningNumber = collect[i][4].ToString();
+ item.cityLevelName = collect[i][5].ToString();
+ item.districtLevelDivisionNumber = collect[i][6].ToString();
+ item.districtLevelName = collect[i][7].ToString();
+ item.level = collect[i][8].ToString();
+ array[i - 1] = item;
+ }
+ return array;
+ }
+
+ ///
+ /// ȡexcelļ
+ ///
+ /// ļ·
+ ///
+ ///
+ ///
+ static DataRowCollection ReadExcel(string filePath, ref int columnNum, ref int rowNum)
+ {
+ FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
+ IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+ DataSet result = excelReader.AsDataSet();
+ //Tables[0] ±0ʾexcelļеһű
+ columnNum = result.Tables[0].Columns.Count;
+ rowNum = result.Tables[0].Rows.Count;
+ return result.Tables[0].Rows;
+ }
+}
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs.meta
new file mode 100644
index 0000000..f6910bf
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/Data/CityExcelData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8096271945f5f2842aed418ba157a873
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs
new file mode 100644
index 0000000..b159171
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs
@@ -0,0 +1,29 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+using System.Linq;
+
+public class TEst : MonoBehaviour
+{
+
+ public CityExcelData manager = new CityExcelData();
+
+ [ContextMenu("GetInfo")]
+ public void CreateItemAsset()
+ {
+ manager.cityItems = null;
+ manager.cityItems = ExcelTool.CreateItemArrayWithExcel(ExcelConfig.excelsFolderPath + "ɽ.xlsx");
+
+ for (int i = 0; i < transform.childCount; i++)
+ {
+ CityInfo c = transform.GetChild(i).GetComponent();
+ c.cityName = c.gameObject.name;
+ for (int l = 0; l < manager.cityItems.Length; l++)
+ {
+ if (c.cityName == manager.cityItems[l].districtName)
+ c.distCode = manager.cityItems[l].divisionNumber;
+ }
+ }
+
+ }
+}
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs.meta
new file mode 100644
index 0000000..2ec0d9d
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/TEst.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9ed0e77789977cb4a9a95db4c9afecd0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask.meta
new file mode 100644
index 0000000..a076464
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 43cf8a4655d4ac140858caddc92ba51d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor.meta
new file mode 100644
index 0000000..71abaa3
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 073d6d818cce31e4a8a33cc5e9dd28ae
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs
new file mode 100644
index 0000000..4189133
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs
@@ -0,0 +1,62 @@
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+using System;
+using System.Linq;
+using System.Reflection;
+using UnityEditor;
+using UnityEngine;
+
+namespace Cysharp.Threading.Tasks.Editor
+{
+ // reflection call of UnityEditor.SplitterGUILayout
+ internal static class SplitterGUILayout
+ {
+ static BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
+
+ static Lazy splitterStateType = new Lazy(() =>
+ {
+ var type = typeof(EditorWindow).Assembly.GetTypes().First(x => x.FullName == "UnityEditor.SplitterState");
+ return type;
+ });
+
+ static Lazy splitterStateCtor = new Lazy(() =>
+ {
+ var type = splitterStateType.Value;
+ return type.GetConstructor(flags, null, new Type[] { typeof(float[]), typeof(int[]), typeof(int[]) }, null);
+ });
+
+ static Lazy splitterGUILayoutType = new Lazy(() =>
+ {
+ var type = typeof(EditorWindow).Assembly.GetTypes().First(x => x.FullName == "UnityEditor.SplitterGUILayout");
+ return type;
+ });
+
+ static Lazy beginVerticalSplit = new Lazy(() =>
+ {
+ var type = splitterGUILayoutType.Value;
+ return type.GetMethod("BeginVerticalSplit", flags, null, new Type[] { splitterStateType.Value, typeof(GUILayoutOption[]) }, null);
+ });
+
+ static Lazy endVerticalSplit = new Lazy(() =>
+ {
+ var type = splitterGUILayoutType.Value;
+ return type.GetMethod("EndVerticalSplit", flags, null, Type.EmptyTypes, null);
+ });
+
+ public static object CreateSplitterState(float[] relativeSizes, int[] minSizes, int[] maxSizes)
+ {
+ return splitterStateCtor.Value.Invoke(new object[] { relativeSizes, minSizes, maxSizes });
+ }
+
+ public static void BeginVerticalSplit(object splitterState, params GUILayoutOption[] options)
+ {
+ beginVerticalSplit.Value.Invoke(null, new object[] { splitterState, options });
+ }
+
+ public static void EndVerticalSplit()
+ {
+ endVerticalSplit.Value.Invoke(null, Type.EmptyTypes);
+ }
+ }
+}
+
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs.meta
new file mode 100644
index 0000000..4d718f4
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/SplitterGUILayout.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 40ef2e46f900131419e869398a8d3c9d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef
new file mode 100644
index 0000000..c618c6a
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef
@@ -0,0 +1,17 @@
+{
+ "name": "UniTask.Editor",
+ "references": [
+ "UniTask"
+ ],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": false,
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
+}
\ No newline at end of file
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef.meta
new file mode 100644
index 0000000..821b87b
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTask.Editor.asmdef.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4129704b5a1a13841ba16f230bf24a57
+AssemblyDefinitionImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs
new file mode 100644
index 0000000..e7b6269
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs
@@ -0,0 +1,182 @@
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System;
+using UnityEditor.IMGUI.Controls;
+using Cysharp.Threading.Tasks.Internal;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace Cysharp.Threading.Tasks.Editor
+{
+ public class UniTaskTrackerViewItem : TreeViewItem
+ {
+ static Regex removeHref = new Regex("(.+)", RegexOptions.Compiled);
+
+ public string TaskType { get; set; }
+ public string Elapsed { get; set; }
+ public string Status { get; set; }
+
+ string position;
+ public string Position
+ {
+ get { return position; }
+ set
+ {
+ position = value;
+ PositionFirstLine = GetFirstLine(position);
+ }
+ }
+
+ public string PositionFirstLine { get; private set; }
+
+ static string GetFirstLine(string str)
+ {
+ var sb = new StringBuilder();
+ for (int i = 0; i < str.Length; i++)
+ {
+ if (str[i] == '\r' || str[i] == '\n')
+ {
+ break;
+ }
+ sb.Append(str[i]);
+ }
+
+ return removeHref.Replace(sb.ToString(), "$1");
+ }
+
+ public UniTaskTrackerViewItem(int id) : base(id)
+ {
+
+ }
+ }
+
+ public class UniTaskTrackerTreeView : TreeView
+ {
+ const string sortedColumnIndexStateKey = "UniTaskTrackerTreeView_sortedColumnIndex";
+
+ public IReadOnlyList CurrentBindingItems;
+
+ public UniTaskTrackerTreeView()
+ : this(new TreeViewState(), new MultiColumnHeader(new MultiColumnHeaderState(new[]
+ {
+ new MultiColumnHeaderState.Column() { headerContent = new GUIContent("TaskType"), width = 20},
+ new MultiColumnHeaderState.Column() { headerContent = new GUIContent("Elapsed"), width = 10},
+ new MultiColumnHeaderState.Column() { headerContent = new GUIContent("Status"), width = 10},
+ new MultiColumnHeaderState.Column() { headerContent = new GUIContent("Position")},
+ })))
+ {
+ }
+
+ UniTaskTrackerTreeView(TreeViewState state, MultiColumnHeader header)
+ : base(state, header)
+ {
+ rowHeight = 20;
+ showAlternatingRowBackgrounds = true;
+ showBorder = true;
+ header.sortingChanged += Header_sortingChanged;
+
+ header.ResizeToFit();
+ Reload();
+
+ header.sortedColumnIndex = SessionState.GetInt(sortedColumnIndexStateKey, 1);
+ }
+
+ public void ReloadAndSort()
+ {
+ var currentSelected = this.state.selectedIDs;
+ Reload();
+ Header_sortingChanged(this.multiColumnHeader);
+ this.state.selectedIDs = currentSelected;
+ }
+
+ private void Header_sortingChanged(MultiColumnHeader multiColumnHeader)
+ {
+ SessionState.SetInt(sortedColumnIndexStateKey, multiColumnHeader.sortedColumnIndex);
+ var index = multiColumnHeader.sortedColumnIndex;
+ var ascending = multiColumnHeader.IsSortedAscending(multiColumnHeader.sortedColumnIndex);
+
+ var items = rootItem.children.Cast();
+
+ IOrderedEnumerable orderedEnumerable;
+ switch (index)
+ {
+ case 0:
+ orderedEnumerable = ascending ? items.OrderBy(item => item.TaskType) : items.OrderByDescending(item => item.TaskType);
+ break;
+ case 1:
+ orderedEnumerable = ascending ? items.OrderBy(item => double.Parse(item.Elapsed)) : items.OrderByDescending(item => double.Parse(item.Elapsed));
+ break;
+ case 2:
+ orderedEnumerable = ascending ? items.OrderBy(item => item.Status) : items.OrderByDescending(item => item.Elapsed);
+ break;
+ case 3:
+ orderedEnumerable = ascending ? items.OrderBy(item => item.Position) : items.OrderByDescending(item => item.PositionFirstLine);
+ break;
+ default:
+ throw new ArgumentOutOfRangeException(nameof(index), index, null);
+ }
+
+ CurrentBindingItems = rootItem.children = orderedEnumerable.Cast().ToList();
+ BuildRows(rootItem);
+ }
+
+ protected override TreeViewItem BuildRoot()
+ {
+ var root = new TreeViewItem { depth = -1 };
+
+ var children = new List();
+
+ TaskTracker.ForEachActiveTask((trackingId, awaiterType, status, created, stackTrace) =>
+ {
+ children.Add(new UniTaskTrackerViewItem(trackingId) { TaskType = awaiterType, Status = status.ToString(), Elapsed = (DateTime.UtcNow - created).TotalSeconds.ToString("00.00"), Position = stackTrace });
+ });
+
+ CurrentBindingItems = children;
+ root.children = CurrentBindingItems as List;
+ return root;
+ }
+
+ protected override bool CanMultiSelect(TreeViewItem item)
+ {
+ return false;
+ }
+
+ protected override void RowGUI(RowGUIArgs args)
+ {
+ var item = args.item as UniTaskTrackerViewItem;
+
+ for (var visibleColumnIndex = 0; visibleColumnIndex < args.GetNumVisibleColumns(); visibleColumnIndex++)
+ {
+ var rect = args.GetCellRect(visibleColumnIndex);
+ var columnIndex = args.GetColumn(visibleColumnIndex);
+
+ var labelStyle = args.selected ? EditorStyles.whiteLabel : EditorStyles.label;
+ labelStyle.alignment = TextAnchor.MiddleLeft;
+ switch (columnIndex)
+ {
+ case 0:
+ EditorGUI.LabelField(rect, item.TaskType, labelStyle);
+ break;
+ case 1:
+ EditorGUI.LabelField(rect, item.Elapsed, labelStyle);
+ break;
+ case 2:
+ EditorGUI.LabelField(rect, item.Status, labelStyle);
+ break;
+ case 3:
+ EditorGUI.LabelField(rect, item.PositionFirstLine, labelStyle);
+ break;
+ default:
+ throw new ArgumentOutOfRangeException(nameof(columnIndex), columnIndex, null);
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs.meta
new file mode 100644
index 0000000..9b34d7b
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerTreeView.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 52e2d973a2156674e8c1c9433ed031f7
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs
new file mode 100644
index 0000000..242ac6d
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs
@@ -0,0 +1,209 @@
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System;
+using UnityEditor.IMGUI.Controls;
+using Cysharp.Threading.Tasks.Internal;
+
+namespace Cysharp.Threading.Tasks.Editor
+{
+ public class UniTaskTrackerWindow : EditorWindow
+ {
+ static int interval;
+
+ static UniTaskTrackerWindow window;
+
+ [MenuItem("Window/UniTask Tracker")]
+ public static void OpenWindow()
+ {
+ if (window != null)
+ {
+ window.Close();
+ }
+
+ // will called OnEnable(singleton instance will be set).
+ GetWindow("UniTask Tracker").Show();
+ }
+
+ static readonly GUILayoutOption[] EmptyLayoutOption = new GUILayoutOption[0];
+
+ UniTaskTrackerTreeView treeView;
+ object splitterState;
+
+ void OnEnable()
+ {
+ window = this; // set singleton.
+ splitterState = SplitterGUILayout.CreateSplitterState(new float[] { 75f, 25f }, new int[] { 32, 32 }, null);
+ treeView = new UniTaskTrackerTreeView();
+ TaskTracker.EditorEnableState.EnableAutoReload = EditorPrefs.GetBool(TaskTracker.EnableAutoReloadKey, false);
+ TaskTracker.EditorEnableState.EnableTracking = EditorPrefs.GetBool(TaskTracker.EnableTrackingKey, false);
+ TaskTracker.EditorEnableState.EnableStackTrace = EditorPrefs.GetBool(TaskTracker.EnableStackTraceKey, false);
+ }
+
+ void OnGUI()
+ {
+ // Head
+ RenderHeadPanel();
+
+ // Splittable
+ SplitterGUILayout.BeginVerticalSplit(this.splitterState, EmptyLayoutOption);
+ {
+ // Column Tabble
+ RenderTable();
+
+ // StackTrace details
+ RenderDetailsPanel();
+ }
+ SplitterGUILayout.EndVerticalSplit();
+ }
+
+ #region HeadPanel
+
+ public static bool EnableAutoReload => TaskTracker.EditorEnableState.EnableAutoReload;
+ public static bool EnableTracking => TaskTracker.EditorEnableState.EnableTracking;
+ public static bool EnableStackTrace => TaskTracker.EditorEnableState.EnableStackTrace;
+ static readonly GUIContent EnableAutoReloadHeadContent = EditorGUIUtility.TrTextContent("Enable AutoReload", "Reload automatically.", (Texture)null);
+ static readonly GUIContent ReloadHeadContent = EditorGUIUtility.TrTextContent("Reload", "Reload View.", (Texture)null);
+ static readonly GUIContent GCHeadContent = EditorGUIUtility.TrTextContent("GC.Collect", "Invoke GC.Collect.", (Texture)null);
+ static readonly GUIContent EnableTrackingHeadContent = EditorGUIUtility.TrTextContent("Enable Tracking", "Start to track async/await UniTask. Performance impact: low", (Texture)null);
+ static readonly GUIContent EnableStackTraceHeadContent = EditorGUIUtility.TrTextContent("Enable StackTrace", "Capture StackTrace when task is started. Performance impact: high", (Texture)null);
+
+ // [Enable Tracking] | [Enable StackTrace]
+ void RenderHeadPanel()
+ {
+ EditorGUILayout.BeginVertical(EmptyLayoutOption);
+ EditorGUILayout.BeginHorizontal(EditorStyles.toolbar, EmptyLayoutOption);
+
+ if (GUILayout.Toggle(EnableAutoReload, EnableAutoReloadHeadContent, EditorStyles.toolbarButton, EmptyLayoutOption) != EnableAutoReload)
+ {
+ TaskTracker.EditorEnableState.EnableAutoReload = !EnableAutoReload;
+ }
+
+ if (GUILayout.Toggle(EnableTracking, EnableTrackingHeadContent, EditorStyles.toolbarButton, EmptyLayoutOption) != EnableTracking)
+ {
+ TaskTracker.EditorEnableState.EnableTracking = !EnableTracking;
+ }
+
+ if (GUILayout.Toggle(EnableStackTrace, EnableStackTraceHeadContent, EditorStyles.toolbarButton, EmptyLayoutOption) != EnableStackTrace)
+ {
+ TaskTracker.EditorEnableState.EnableStackTrace = !EnableStackTrace;
+ }
+
+ GUILayout.FlexibleSpace();
+
+ if (GUILayout.Button(ReloadHeadContent, EditorStyles.toolbarButton, EmptyLayoutOption))
+ {
+ TaskTracker.CheckAndResetDirty();
+ treeView.ReloadAndSort();
+ Repaint();
+ }
+
+ if (GUILayout.Button(GCHeadContent, EditorStyles.toolbarButton, EmptyLayoutOption))
+ {
+ GC.Collect(0);
+ }
+
+ EditorGUILayout.EndHorizontal();
+ EditorGUILayout.EndVertical();
+ }
+
+ #endregion
+
+ #region TableColumn
+
+ Vector2 tableScroll;
+ GUIStyle tableListStyle;
+
+ void RenderTable()
+ {
+ if (tableListStyle == null)
+ {
+ tableListStyle = new GUIStyle("CN Box");
+ tableListStyle.margin.top = 0;
+ tableListStyle.padding.left = 3;
+ }
+
+ EditorGUILayout.BeginVertical(tableListStyle, EmptyLayoutOption);
+
+ this.tableScroll = EditorGUILayout.BeginScrollView(this.tableScroll, new GUILayoutOption[]
+ {
+ GUILayout.ExpandWidth(true),
+ GUILayout.MaxWidth(2000f)
+ });
+ var controlRect = EditorGUILayout.GetControlRect(new GUILayoutOption[]
+ {
+ GUILayout.ExpandHeight(true),
+ GUILayout.ExpandWidth(true)
+ });
+
+
+ treeView?.OnGUI(controlRect);
+
+ EditorGUILayout.EndScrollView();
+ EditorGUILayout.EndVertical();
+ }
+
+ private void Update()
+ {
+ if (EnableAutoReload)
+ {
+ if (interval++ % 120 == 0)
+ {
+ if (TaskTracker.CheckAndResetDirty())
+ {
+ treeView.ReloadAndSort();
+ Repaint();
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region Details
+
+ static GUIStyle detailsStyle;
+ Vector2 detailsScroll;
+
+ void RenderDetailsPanel()
+ {
+ if (detailsStyle == null)
+ {
+ detailsStyle = new GUIStyle("CN Message");
+ detailsStyle.wordWrap = false;
+ detailsStyle.stretchHeight = true;
+ detailsStyle.margin.right = 15;
+ }
+
+ string message = "";
+ var selected = treeView.state.selectedIDs;
+ if (selected.Count > 0)
+ {
+ var first = selected[0];
+ var item = treeView.CurrentBindingItems.FirstOrDefault(x => x.id == first) as UniTaskTrackerViewItem;
+ if (item != null)
+ {
+ message = item.Position;
+ }
+ }
+
+ detailsScroll = EditorGUILayout.BeginScrollView(this.detailsScroll, EmptyLayoutOption);
+ var vector = detailsStyle.CalcSize(new GUIContent(message));
+ EditorGUILayout.SelectableLabel(message, detailsStyle, new GUILayoutOption[]
+ {
+ GUILayout.ExpandHeight(true),
+ GUILayout.ExpandWidth(true),
+ GUILayout.MinWidth(vector.x),
+ GUILayout.MinHeight(vector.y)
+ });
+ EditorGUILayout.EndScrollView();
+ }
+
+ #endregion
+ }
+}
+
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs.meta
new file mode 100644
index 0000000..ba1b704
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Editor/UniTaskTrackerWindow.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5bee3e3860e37484aa3b861bf76d129f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime.meta b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime.meta
new file mode 100644
index 0000000..8e11ef4
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 20afd5140b490ce4594b0464e01d30df
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime/AsyncLazy.cs b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime/AsyncLazy.cs
new file mode 100644
index 0000000..51bfadc
--- /dev/null
+++ b/u3d-ShanDongVirtualPowerPlant/Assets/Adam/Scripts/UniTask/Runtime/AsyncLazy.cs
@@ -0,0 +1,245 @@
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+using System;
+using System.Threading;
+
+namespace Cysharp.Threading.Tasks
+{
+ public class AsyncLazy
+ {
+ static Action