├── frontend ├── .eslintignore ├── .browserslistrc ├── babel.config.js ├── public │ ├── favicon.ico │ ├── static │ │ ├── img │ │ │ ├── logo1.png │ │ │ └── logo2.png │ │ ├── map │ │ │ ├── province │ │ │ │ ├── aomen.json │ │ │ │ ├── taiwan.json │ │ │ │ ├── tianjin.json │ │ │ │ ├── shanghai.json │ │ │ │ ├── xianggang.json │ │ │ │ ├── ningxia.json │ │ │ │ ├── beijing.json │ │ │ │ └── shanxi.json │ │ │ └── china-contour.json │ │ └── theme │ │ │ ├── vintage.js │ │ │ └── chalk.js │ └── index.html ├── src │ ├── assets │ │ ├── logo.png │ │ └── css │ │ │ └── global.less │ ├── App.vue │ ├── store │ │ └── index.js │ ├── views │ │ ├── GeoPage1.vue │ │ ├── SexPage.vue │ │ ├── GeoPage2.vue │ │ ├── StarPage1.vue │ │ ├── StarPage2.vue │ │ ├── ProvincePage1.vue │ │ ├── ProvincePage2.vue │ │ ├── StarGroup.vue │ │ └── ProvinceGroup.vue │ ├── main.js │ ├── router │ │ └── index.js │ └── components │ │ ├── Star2.vue │ │ ├── Province2.vue │ │ ├── Star.vue │ │ ├── Province1.vue │ │ └── Sex.vue ├── .editorconfig ├── .gitignore ├── vue.config.js ├── .eslintrc.js ├── README.md └── package.json ├── backend └── mysite │ ├── mysite │ ├── __init__.py │ ├── __pycache__ │ │ ├── urls.cpython-39.pyc │ │ ├── wsgi.cpython-39.pyc │ │ ├── views.cpython-39.pyc │ │ ├── __init__.cpython-39.pyc │ │ └── settings.cpython-39.pyc │ ├── views.py │ ├── asgi.py │ ├── wsgi.py │ ├── templates │ │ └── index.html │ ├── urls.py │ └── settings.py │ ├── student │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-39.pyc │ │ │ ├── 0001_initial.cpython-39.pyc │ │ │ ├── 0007_sexinfo.cpython-39.pyc │ │ │ ├── 0008_geoinfo.cpython-39.pyc │ │ │ ├── 0009_anhuigeoinfo.cpython-39.pyc │ │ │ ├── 0004_student_byword.cpython-39.pyc │ │ │ ├── 0006_starinfo_value.cpython-39.pyc │ │ │ ├── 0003_remove_student_byword.cpython-39.pyc │ │ │ ├── 0002_student_byword_student_constellation.cpython-39.pyc │ │ │ ├── 0005_starinfo_alter_student_constellation.cpython-39.pyc │ │ │ └── 0010_provinceinfo_alter_anhuigeoinfo_options_and_more.cpython-39.pyc │ │ ├── 0003_remove_student_byword.py │ │ ├── 0004_student_byword.py │ │ ├── 0006_starinfo_value.py │ │ ├── 0009_anhuigeoinfo.py │ │ ├── 0007_sexinfo.py │ │ ├── 0002_student_byword_student_constellation.py │ │ ├── 0008_geoinfo.py │ │ ├── 0005_starinfo_alter_student_constellation.py │ │ ├── 0010_provinceinfo_alter_anhuigeoinfo_options_and_more.py │ │ └── 0001_initial.py │ ├── tests.py │ ├── __pycache__ │ │ ├── admin.cpython-39.pyc │ │ ├── apps.cpython-39.pyc │ │ ├── forms.cpython-39.pyc │ │ ├── models.cpython-39.pyc │ │ ├── urls.cpython-39.pyc │ │ ├── views.cpython-39.pyc │ │ ├── __init__.cpython-39.pyc │ │ └── serializers.cpython-39.pyc │ ├── apps.py │ ├── urls.py │ ├── admin.py │ ├── static │ │ └── info.css │ ├── forms.py │ ├── templates │ │ ├── succeed.html │ │ └── info.html │ ├── serializers.py │ ├── models.py │ └── views.py │ ├── requirements.txt │ └── manage.py ├── .gitignore ├── logo.png ├── assets ├── 01.jpg ├── 02.jpg └── logo.png ├── LICENSE └── README.md /frontend/.eslintignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /backend/mysite/mysite/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/mysite/student/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.ini 2 | /.vscode 3 | .idea 4 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/logo.png -------------------------------------------------------------------------------- /assets/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/assets/01.jpg -------------------------------------------------------------------------------- /assets/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/assets/02.jpg -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/assets/logo.png -------------------------------------------------------------------------------- /backend/mysite/student/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /frontend/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/frontend/public/favicon.ico -------------------------------------------------------------------------------- /frontend/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/frontend/src/assets/logo.png -------------------------------------------------------------------------------- /backend/mysite/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/requirements.txt -------------------------------------------------------------------------------- /frontend/public/static/img/logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/frontend/public/static/img/logo1.png -------------------------------------------------------------------------------- /frontend/public/static/img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/frontend/public/static/img/logo2.png -------------------------------------------------------------------------------- /frontend/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /backend/mysite/mysite/__pycache__/urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/mysite/__pycache__/urls.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/mysite/__pycache__/wsgi.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/mysite/__pycache__/wsgi.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/mysite/__pycache__/views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/mysite/__pycache__/views.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/admin.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/admin.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/apps.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/apps.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/forms.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/forms.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/models.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/models.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/urls.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/urls.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/views.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/views.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/mysite/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/mysite/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/mysite/__pycache__/settings.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/mysite/__pycache__/settings.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/__pycache__/serializers.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/__pycache__/serializers.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/__init__.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/__init__.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0001_initial.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0001_initial.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0007_sexinfo.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0007_sexinfo.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0008_geoinfo.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0008_geoinfo.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0009_anhuigeoinfo.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0009_anhuigeoinfo.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0004_student_byword.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0004_student_byword.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0006_starinfo_value.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0006_starinfo_value.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class StudentConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'student' 7 | verbose_name = u"信息管理" 8 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0003_remove_student_byword.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0003_remove_student_byword.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/mysite/views.py: -------------------------------------------------------------------------------- 1 | from django.http import HttpResponseRedirect 2 | from django.shortcuts import render 3 | from django.urls import reverse 4 | 5 | 6 | def index(request): 7 | return render(request, 'index.html', context=None) 8 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0002_student_byword_student_constellation.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0002_student_byword_student_constellation.cpython-39.pyc -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0005_starinfo_alter_student_constellation.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0005_starinfo_alter_student_constellation.cpython-39.pyc -------------------------------------------------------------------------------- /frontend/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | export default new Vuex.Store({ 7 | state: { 8 | }, 9 | mutations: { 10 | }, 11 | actions: { 12 | }, 13 | modules: { 14 | } 15 | }) 16 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/__pycache__/0010_provinceinfo_alter_anhuigeoinfo_options_and_more.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sun0225SUN/Student-Data-Vision/HEAD/backend/mysite/student/migrations/__pycache__/0010_provinceinfo_alter_anhuigeoinfo_options_and_more.cpython-39.pyc -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /frontend/vue.config.js: -------------------------------------------------------------------------------- 1 | // vue配置 2 | const webpack = require('webpack') 3 | module.exports = { 4 | devServer: { 5 | port: 8999, // 端口号 6 | open: true // 自动打开 7 | }, 8 | configureWebpack: { 9 | plugins: [ 10 | new webpack.ProvidePlugin({ 11 | $: 'jquery', 12 | jQuery: 'jquery', 13 | 'window.jQuery': 'jquery' 14 | }) 15 | ] 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /frontend/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: [ 7 | 'plugin:vue/essential', 8 | '@vue/standard' 9 | ], 10 | parserOptions: { 11 | parser: 'babel-eslint' 12 | }, 13 | rules: { 14 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # vision 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0003_remove_student_byword.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-21 14:18 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0002_student_byword_student_constellation'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='student', 15 | name='byword', 16 | ), 17 | ] 18 | -------------------------------------------------------------------------------- /backend/mysite/mysite/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for mysite project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /backend/mysite/mysite/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for mysite project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /frontend/src/views/GeoPage1.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/SexPage.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/GeoPage2.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/StarPage1.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/StarPage2.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/ProvincePage1.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /frontend/src/views/ProvincePage2.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 10 | 11 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0004_student_byword.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-21 14:35 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0003_remove_student_byword'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='student', 15 | name='byword', 16 | field=models.TextField(blank=True, max_length=128, verbose_name='人生格言'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0006_starinfo_value.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-22 13:21 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0005_starinfo_alter_student_constellation'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='starinfo', 15 | name='value', 16 | field=models.IntegerField(default=0, verbose_name='数值'), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /backend/mysite/mysite/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 小孙同学 6 | 7 | 8 | 9 |
10 |

🚀 欢迎来到小孙同学《学生信息管理及可视化分析系统》 🚀

11 |
12 |

🚀 学生信息管理部分 🚀

13 | 14 |

🚀 学生信息可视化分析部分 🚀

15 | 16 |

©2021 By 小孙同学

17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/src/views/StarGroup.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 11 | 12 | 28 | 29 | 32 | -------------------------------------------------------------------------------- /frontend/src/views/ProvinceGroup.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable vue/valid-template-root */ 2 | // 针对/starpage路由显示 3 | // 在这个组件中,通过子组件注册的方式显示Seller.vue组件 4 | 5 | 11 | 12 | 28 | 29 | 32 | -------------------------------------------------------------------------------- /frontend/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import axios from 'axios' 6 | import './assets/css/global.less' 7 | // eslint-disable-next-line no-unused-vars 8 | import $ from 'jquery' 9 | 10 | // 请求基准路径的配置 11 | axios.defaults.baseURL = 'http://127.0.0.1:8000/api/' 12 | 13 | // 将axios挂载到Vue的原型对象上 14 | // 在别的组件中 this.$http 15 | Vue.prototype.$http = axios 16 | 17 | // 将全局的echarts对象挂载到Vue的原型对象上 18 | // 别的组件中 this.$echarts 19 | Vue.prototype.$echarts = window.echarts 20 | 21 | Vue.config.productionTip = false 22 | 23 | new Vue({ 24 | router, 25 | store, 26 | render: (h) => h(App) 27 | }).$mount('#app') 28 | -------------------------------------------------------------------------------- /backend/mysite/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /backend/mysite/student/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path 2 | from rest_framework.routers import DefaultRouter 3 | from . import views 4 | 5 | app_name = 'student' 6 | urlpatterns = [ 7 | path('info/', views.info, name='info'), 8 | path('succeed/', views.succeed, name='succeed'), 9 | path('update/', views.update, name='update'), 10 | ] 11 | 12 | router = DefaultRouter() 13 | router.register(r"api/sex", views.SexInfoViewSet) 14 | router.register(r"api/star", views.StarInfoViewSet) 15 | router.register(r"api/geo1", views.Geo1ViewSet) 16 | router.register(r"api/geo2", views.Geo2ViewSet) 17 | router.register(r"api/geo3", views.Geo3ViewSet) 18 | router.register(r"api/geo4", views.Geo4ViewSet) 19 | router.register(r"api/province", views.ProvinceInfoViewSet) 20 | urlpatterns += router.urls 21 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0009_anhuigeoinfo.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-26 07:18 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0008_geoinfo'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='AnhuiGeoInfo', 15 | fields=[ 16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('name', models.CharField(max_length=128, verbose_name='姓名')), 18 | ('value', models.CharField(default=0, max_length=128, verbose_name='家乡坐标')), 19 | ('coords', models.CharField(default=0, max_length=128, verbose_name='箭头坐标')), 20 | ], 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0007_sexinfo.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-23 16:26 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0006_starinfo_value'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='SexInfo', 15 | fields=[ 16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('name', models.CharField(max_length=128, verbose_name='性别')), 18 | ('value', models.IntegerField(default=0, verbose_name='数值')), 19 | ], 20 | options={ 21 | 'verbose_name': '男女比例', 22 | 'verbose_name_plural': '男女比例', 23 | }, 24 | ), 25 | ] 26 | -------------------------------------------------------------------------------- /frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 小孙同学 11 | 12 | 13 | 14 | 15 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0002_student_byword_student_constellation.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-21 14:08 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='student', 15 | name='byword', 16 | field=models.CharField(default='人生格言', max_length=128, verbose_name='人生格言'), 17 | ), 18 | migrations.AddField( 19 | model_name='student', 20 | name='constellation', 21 | field=models.IntegerField(choices=[(0, '白羊座'), (1, '金牛座'), (2, '双子座'), (3, '巨蟹座'), (4, '狮子座'), (5, '处女座'), (6, '天秤座'), (7, '天蝎座'), (8, '射手座'), (9, '魔羯座'), (10, '水平座'), (11, '双鱼座')], default=0, verbose_name='性别'), 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /backend/mysite/student/admin.py: -------------------------------------------------------------------------------- 1 | # django的接口,默认已经引入。 2 | from django.contrib import admin 3 | 4 | # 引入我们自己写的数据表(类) 5 | from .models import * 6 | 7 | 8 | # 引用默认的API来自定义后台。 9 | class StudentAdmin(admin.ModelAdmin): 10 | list_display = ( 11 | 'id', 'status', 'stu_id', 'name', 'sex', 'constellation', 'birthday', 'hometown', 'byword', 'created_time') 12 | search_fields = ('name', 'stu_id') 13 | # list_filter = ('sex', 'constellation', 'birthday', 'hometown', 'byword') 14 | list_editable = ('status',) 15 | fieldsets = ( 16 | (None, { 17 | 'fields': ( 18 | 'status', 19 | 'stu_id', 20 | 'name', 21 | 'sex', 22 | 'constellation', 23 | 'birthday', 24 | 'hometown', 25 | 'byword', 26 | ) 27 | }), 28 | ) 29 | 30 | 31 | # Register your models here. 32 | admin.site.register(Student, StudentAdmin) 33 | -------------------------------------------------------------------------------- /backend/mysite/student/static/info.css: -------------------------------------------------------------------------------- 1 | * { 2 | padding: 0; 3 | margin: 0; 4 | } 5 | 6 | body { 7 | height: 100%; 8 | background-image: linear-gradient(to right, #fbc2eb, #a6c1ee); 9 | } 10 | 11 | html { 12 | height: 100%; 13 | } 14 | 15 | .base_container { 16 | height: 100%; 17 | } 18 | 19 | .form-header { 20 | margin: 0 auto; 21 | padding: 0 0 25px 0; 22 | font-size: 25px; 23 | text-align: center; 24 | } 25 | 26 | .form_wrapper { 27 | background-color: #fff; 28 | width: 550px; 29 | border-radius: 15px; 30 | padding: 50px 50px; 31 | position: relative; 32 | left: 50%; 33 | top: 50%; 34 | transform: translate(-50%, -50%); 35 | } 36 | 37 | .btn { 38 | text-align: center; 39 | padding: 10px; 40 | width: 100%; 41 | margin-top: 15px; 42 | background-image: linear-gradient(to right, #a6c1ee, #fbc2eb); 43 | color: #fff; 44 | } 45 | 46 | #id_byword { 47 | height: 66px; 48 | } -------------------------------------------------------------------------------- /backend/mysite/mysite/urls.py: -------------------------------------------------------------------------------- 1 | """mysite URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/4.0/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.urls import include, path 14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15 | """ 16 | from django.contrib import admin 17 | from django.urls import path, include 18 | from . import views 19 | 20 | urlpatterns = [ 21 | path('', views.index), 22 | path('admin/', admin.site.urls), 23 | path('', include('student.urls')), 24 | path('api-auth/', include('rest_framework.urls')) 25 | ] 26 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0008_geoinfo.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-23 18:41 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0007_sexinfo'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='GeoInfo', 15 | fields=[ 16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('name', models.CharField(max_length=128, verbose_name='姓名')), 18 | ('hometown', models.CharField(max_length=128, verbose_name='家乡')), 19 | ('value', models.CharField(default=0, max_length=128, verbose_name='家乡坐标')), 20 | ('coords', models.CharField(default=0, max_length=128, verbose_name='箭头坐标')), 21 | ], 22 | options={ 23 | 'verbose_name': '地图坐标', 24 | 'verbose_name_plural': '地图坐标', 25 | }, 26 | ), 27 | ] 28 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vision", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.24.0", 12 | "core-js": "^3.6.5", 13 | "jquery": "^3.6.0", 14 | "vue": "^2.6.11", 15 | "vue-router": "^3.2.0", 16 | "vuex": "^3.4.0" 17 | }, 18 | "devDependencies": { 19 | "@vue/cli-plugin-babel": "~4.5.0", 20 | "@vue/cli-plugin-eslint": "~4.5.0", 21 | "@vue/cli-plugin-router": "~4.5.0", 22 | "@vue/cli-plugin-vuex": "~4.5.0", 23 | "@vue/cli-service": "~4.5.0", 24 | "@vue/eslint-config-standard": "^5.1.2", 25 | "babel-eslint": "^10.1.0", 26 | "eslint-plugin-import": "^2.20.2", 27 | "eslint-plugin-node": "^11.1.0", 28 | "eslint-plugin-promise": "^4.2.1", 29 | "eslint-plugin-standard": "^4.0.0", 30 | "eslint-plugin-vue": "^6.2.2", 31 | "less": "^3.0.4", 32 | "less-loader": "^5.0.0", 33 | "vue-template-compiler": "^2.6.11" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 小孙同学 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /backend/mysite/student/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | 3 | from .models import Student 4 | 5 | 6 | class StudentForm(forms.ModelForm): 7 | stu_id = forms.CharField(label='学号', max_length=128) 8 | name = forms.CharField(label='姓名', max_length=128) 9 | sex = forms.ChoiceField(label='性别', choices=Student.SEX_ITEMS) 10 | constellation = forms.ChoiceField(label='星座', choices=Student.STAR_ITEMS) 11 | birthday = forms.DateField(label='生日', widget=forms.widgets.DateTimeInput(attrs={'type': 'date'})) 12 | hometown = forms.CharField(label='家庭住址', max_length=128) 13 | byword = forms.CharField(widget=forms.Textarea, label='人生格言', max_length=128) 14 | 15 | # 学号数字校验 16 | def clean_stu_id(self): 17 | cleaned_data = self.cleaned_data['stu_id'] 18 | if not cleaned_data.isdigit(): 19 | raise forms.ValidationError('学号必须是数字!') 20 | 21 | return int(cleaned_data) 22 | 23 | class Meta: 24 | model = Student 25 | fields = ( 26 | 'stu_id', 'name', 'sex', 'constellation', 'birthday', 'hometown', 'byword' 27 | ) 28 | 29 | 30 | -------------------------------------------------------------------------------- /backend/mysite/student/templates/succeed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 提交成功啦! 6 | 7 | 17 | 18 | 19 |

恭喜你,提交成功啦!

20 |
21 |
22 | 23 | 24 | 25 | 26 | 27 | {% for student in students %} 28 | 29 | 30 | 31 | 32 | 33 | 34 | {#

{{ student.name }}    {{ student.get_status_display }}

#} 35 | 36 | {% endfor %} 37 |
姓名状态
{{ student.name }}{{ student.get_status_display }}
38 |
39 | 40 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0005_starinfo_alter_student_constellation.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-22 12:29 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0004_student_byword'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='StarInfo', 15 | fields=[ 16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('name', models.CharField(max_length=128, verbose_name='星座名字')), 18 | ], 19 | options={ 20 | 'verbose_name': '星座信息', 21 | 'verbose_name_plural': '星座信息', 22 | }, 23 | ), 24 | migrations.AlterField( 25 | model_name='student', 26 | name='constellation', 27 | field=models.IntegerField(choices=[(0, '白羊座'), (1, '金牛座'), (2, '双子座'), (3, '巨蟹座'), (4, '狮子座'), (5, '处女座'), (6, '天秤座'), (7, '天蝎座'), (8, '射手座'), (9, '魔羯座'), (10, '水平座'), (11, '双鱼座')], default=0, verbose_name='星座'), 28 | ), 29 | ] 30 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0010_provinceinfo_alter_anhuigeoinfo_options_and_more.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-26 09:22 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('student', '0009_anhuigeoinfo'), 10 | ] 11 | 12 | operations = [ 13 | migrations.CreateModel( 14 | name='ProvinceInfo', 15 | fields=[ 16 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 17 | ('name', models.CharField(max_length=128, verbose_name='省份名称')), 18 | ('value', models.IntegerField(default=0, verbose_name='数值')), 19 | ], 20 | options={ 21 | 'verbose_name': '学生总数', 22 | 'verbose_name_plural': '学生总数', 23 | }, 24 | ), 25 | migrations.AlterModelOptions( 26 | name='anhuigeoinfo', 27 | options={'verbose_name': '省内学生', 'verbose_name_plural': '省内学生'}, 28 | ), 29 | migrations.AlterModelOptions( 30 | name='geoinfo', 31 | options={'verbose_name': '省内学生', 'verbose_name_plural': '省内学生'}, 32 | ), 33 | ] 34 | -------------------------------------------------------------------------------- /frontend/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import StarPage from '@/views/StarPage1' 5 | import StarPage2 from '@/views/StarPage2' 6 | import SexPage from '@/views/SexPage' 7 | import GeoPage from '@/views/GeoPage1' 8 | import GeoPage2 from '@/views/GeoPage2' 9 | import ProvincePage1 from '@/views/ProvincePage1' 10 | import ProvincePage2 from '@/views/ProvincePage2' 11 | 12 | import StarGroup from '@/views/StarGroup' 13 | import ProvinceGroup from '@/views/ProvinceGroup' 14 | 15 | Vue.use(VueRouter) 16 | 17 | const routes = [ 18 | { 19 | path: '/star1', 20 | component: StarPage 21 | }, 22 | { 23 | path: '/star2', 24 | component: StarPage2 25 | }, 26 | { 27 | path: '/sex', 28 | component: SexPage 29 | }, 30 | { 31 | path: '/map1', 32 | component: GeoPage 33 | }, 34 | { 35 | path: '/map2', 36 | component: GeoPage2 37 | }, 38 | { 39 | path: '/province1', 40 | component: ProvincePage1 41 | }, 42 | { 43 | path: '/province2', 44 | component: ProvincePage2 45 | }, 46 | { 47 | path: '/stargroup', 48 | component: StarGroup 49 | }, 50 | { 51 | path: '/provincegroup', 52 | component: ProvinceGroup 53 | } 54 | ] 55 | 56 | const router = new VueRouter({ 57 | routes 58 | }) 59 | 60 | export default router 61 | -------------------------------------------------------------------------------- /backend/mysite/student/templates/info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 学生信息提交页面 10 | 11 | {% load static %} 12 | 13 | 14 | 15 | 16 | 17 | {% load crispy_forms_tags %} 18 |
19 | 20 |
21 | 22 |
学生信息提交页面
23 |
24 | {% csrf_token %} 25 | {{ form | crispy }} 26 | 27 |
28 | 29 |
30 | 31 |
32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /backend/mysite/student/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | 3 | from .models import * # Student, StarInfo, SexInfo, GeoInfo, AnhuiGeoInfo, ProvinceInfo 4 | 5 | 6 | class SexInfoSerializer(serializers.ModelSerializer): 7 | class Meta: 8 | model = SexInfo 9 | fields = ['name', 'value'] 10 | 11 | 12 | # 星座信息序列化器 13 | class StarInfoSerializer(serializers.ModelSerializer): 14 | class Meta: 15 | model = StarInfo 16 | fields = ['name', 'value'] 17 | 18 | 19 | # 省外数据的序列化器 20 | 21 | class Geo1Serializer(serializers.ModelSerializer): 22 | class Meta: 23 | model = GeoInfo 24 | fields = ['value'] 25 | 26 | 27 | class Geo2Serializer(serializers.ModelSerializer): 28 | class Meta: 29 | model = GeoInfo 30 | fields = ['coords'] 31 | 32 | 33 | # 省内数据的序列化器 34 | 35 | class Geo3Serializer(serializers.ModelSerializer): 36 | class Meta: 37 | model = AnhuiGeoInfo 38 | fields = ['value'] 39 | 40 | 41 | class Geo4Serializer(serializers.ModelSerializer): 42 | class Meta: 43 | model = AnhuiGeoInfo 44 | fields = ['coords'] 45 | 46 | 47 | # 省份信息序列化器 48 | class ProvinceInfoSerializer(serializers.ModelSerializer): 49 | class Meta: 50 | model = ProvinceInfo 51 | fields = ['name', 'value'] 52 | -------------------------------------------------------------------------------- /backend/mysite/student/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0 on 2021-12-21 13:08 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Student', 16 | fields=[ 17 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('stu_id', models.CharField(max_length=10, verbose_name='学号')), 19 | ('name', models.CharField(max_length=128, verbose_name='姓名')), 20 | ('sex', models.IntegerField(choices=[(0, '男'), (1, '女')], default=0, verbose_name='性别')), 21 | ('birthday', models.DateTimeField(verbose_name='生日')), 22 | ('hometown', models.CharField(max_length=128, verbose_name='家庭住址')), 23 | ('status', models.IntegerField(choices=[(0, '申请中'), (1, '已通过'), (2, '已拒绝')], default=0, verbose_name='审核状态')), 24 | ('created_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), 25 | ], 26 | options={ 27 | 'verbose_name': '学生信息', 28 | 'verbose_name_plural': '学生信息', 29 | }, 30 | ), 31 | ] 32 | -------------------------------------------------------------------------------- /frontend/public/static/map/province/aomen.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"820001","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@LADC^umZ@DONWE@DALBBF@H@DFBBTC"],["@@P@LC@AGM@OECMBABBTCD@DDH"]],"encodeOffsets":[[[116285,22746]],[[116303,22746]]]},"properties":{"cp":[113.552965,22.207882],"name":"花地玛堂区","childNum":2}},{"id":"820002","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@MK@CA@AAGDEB@NVFJG"],"encodeOffsets":[[116281,22734]]},"properties":{"cp":[113.549052,22.199175],"name":"花王堂区","childNum":1}},{"id":"820003","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@EGOB@DNLHE@C"],"encodeOffsets":[[116285,22729]]},"properties":{"cp":[113.550252,22.193791],"name":"望德堂区","childNum":1}},{"id":"820004","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ŸYMVAN@BFCBBDAFHDBBFDHIJJEFDPCHHlYJQ"],"encodeOffsets":[[116313,22707]]},"properties":{"cp":[113.55374,22.188119],"name":"大堂区","childNum":1}},{"id":"820005","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JICGAECACGEBAAEDBFNXB@"],"encodeOffsets":[[116266,22728]]},"properties":{"cp":[113.54167,22.187778],"name":"风顺堂区","childNum":1}},{"id":"820006","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ ZNWRquZCBCC@AEA@@ADCDCAACEAGBQ@INEL"],"encodeOffsets":[[116265,22694]]},"properties":{"cp":[113.558783,22.154124],"name":"嘉模堂区","childNum":1}},{"id":"820007","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@MOIAIEI@@GE@AAUCBdCFIFR@HAFBBDDBDCBC@@FB@BDDDA\\M"],"encodeOffsets":[[116316,22676]]},"properties":{"cp":[113.56925,22.136546],"name":"路凼填海区","childNum":1}},{"id":"820008","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DKMMa_GC_COD@dVDBBF@@HJ@JFJBNPZK"],"encodeOffsets":[[116329,22670]]},"properties":{"cp":[113.559954,22.124049],"name":"圣方济各堂区","childNum":1}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/src/components/Star2.vue: -------------------------------------------------------------------------------- 1 | // 星座信息饼图展示页面 2 | 7 | 8 | 78 | 79 | 82 | -------------------------------------------------------------------------------- /frontend/src/components/Province2.vue: -------------------------------------------------------------------------------- 1 | // 星座信息饼图展示页面 2 | 7 | 8 | 78 | 79 | 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 |

Student-Data-Vision

7 | 8 |

✨ 基于 Django + Vue 编写的的学生信息管理及可视化分析项目 ✨

9 | 10 |

11 | 12 | 13 | 14 | 15 |

16 | 17 | # 项目简介 18 | 19 |   灵感源自生活,技术成就未来。在每年大学新生入学的时候,学校或者新媒体工作者都会对新生数据进行数据分析。 20 | 21 |   如何更加有效地组织、管理,更加全面、系统的分析此类学生信息,并以炫酷的可视化页面展示,是开发本项目的初心。 22 | 23 | # 技术选型 24 | 25 |   本项目基于 `B/S` 架构,采用前后端分离的开发模式。后端使用`Django`,前端使用 `Vue` ,采取`MySQL`进行数据的存储。 26 | 27 | # 项目演示 28 | 29 |   演示视频——>[点我访问](https://www.bilibili.com/video/BV15L4y1E7xY) 30 |
31 | 32 | 33 |
34 | 35 | 36 | # 如何使用 37 | 38 | ## 后端(Django) 39 | 40 | ## 前端(Vue) 41 | 42 | 43 | # 更新日志 44 | 45 | ## 2022/2/16 46 | 47 | - 第一次上传,具备最基础的功能。 48 | 49 | # TODO 50 | 51 | - [ ] 学生信息表分级 52 | - [ ] 设计可视化大屏布局 53 | - [ ] WebSocket 加载实时数据 54 | - [ ] 编写独立的后台管理应用 55 | - [ ] 编写学生信息个人展示界面 56 | - [ ] 编写不同层级的可视化面板 57 | 58 | # 感谢 59 | 60 | - [Django](https://github.com/django/django):一个非常棒的 Web 应用框架 61 | - [Vue.js](https://vuejs.org/):一个渐进式的 JavaScript 框架 62 | - [simpleui](https://github.com/newpanjing/simpleui):一款基于 vue+element-ui 的 django admin 现代化主题 63 | 64 | # 声明 65 | 66 |   本项目是我课内实习的一个作品,`Django`和`Vue`都是现学现卖的,代码很烂,技术很菜。加之本人今年计划跨考计科,本项目只会利用我的空闲时间进行优化和更新,期待我们共同进步! 67 | -------------------------------------------------------------------------------- /frontend/src/assets/css/global.less: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #app { 4 | width: 100%; 5 | height: 100%; 6 | padding: 0; 7 | margin: 0; 8 | // overflow: hidden; //溢出隐藏 9 | } 10 | 11 | .com-page { 12 | width: 100%; 13 | height: 100%; 14 | // overflow: hidden; 15 | } 16 | 17 | .com-container { 18 | width: 100%; 19 | height: 100%; 20 | // overflow: hidden; 21 | 22 | } 23 | 24 | // star1 25 | #com-chart { 26 | width: 80%; 27 | height: 80%; 28 | // background-color: rgb(0, 0, 0); 29 | // overflow: hidden; 30 | left: 50%; 31 | top: 50%; 32 | transform: translate(-50%, -50%); 33 | } 34 | 35 | // star2 36 | #com-chart2 { 37 | width: 80%; 38 | height: 80%; 39 | // margin-left: 30px; 40 | // background-color: aqua; 41 | // overflow: hidden; 42 | left: 50%; 43 | top: 50%; 44 | transform: translate(-50%, -50%); 45 | } 46 | 47 | // sex 48 | #com-chart3 { 49 | width: 80%; 50 | height: 80%; 51 | // background-color: aqua; 52 | // overflow: hidden; 53 | left: 55%; 54 | top: 30%; 55 | transform: translate(-50%, -50%); 56 | } 57 | 58 | // geo1 59 | #com-chart4 { 60 | width: 100%; 61 | height: 100%; 62 | // background-color: aqua; 63 | // overflow: hidden; 64 | // left: 50%; 65 | // top: 50%; 66 | // transform: translate(-50%, -50%); 67 | } 68 | 69 | //geo2 70 | #com-chart5 { 71 | width: 100%; 72 | height: 100%; 73 | // background-color: aqua; 74 | // overflow: hidden; 75 | // left: 50%; 76 | // top: 50%; 77 | // transform: translate(-50%, -50%); 78 | } 79 | 80 | //Province1 81 | #com-chart6 { 82 | width: 80%; 83 | height: 80%; 84 | // background-color: aqua; 85 | // overflow: hidden; 86 | left: 50%; 87 | top: 50%; 88 | transform: translate(-50%, -50%); 89 | } 90 | 91 | //Province2 92 | #com-chart7 { 93 | width: 80%; 94 | height: 80%; 95 | // background-color: aqua; 96 | // overflow: hidden; 97 | left: 50%; 98 | top: 50%; 99 | transform: translate(-50%, -50%); 100 | } -------------------------------------------------------------------------------- /frontend/src/components/Star.vue: -------------------------------------------------------------------------------- 1 | // 星座信息饼图展示页面 2 | 7 | 8 | 85 | 86 | 89 | -------------------------------------------------------------------------------- /frontend/src/components/Province1.vue: -------------------------------------------------------------------------------- 1 | // 星座信息饼图展示页面 2 | 7 | 8 | 85 | 86 | 89 | -------------------------------------------------------------------------------- /backend/mysite/student/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | 4 | # Create your models here. 5 | # 学生信息表 6 | class Student(models.Model): 7 | SEX_ITEMS = [ 8 | (0, '男'), 9 | (1, '女'), 10 | ] 11 | STATUS_ITEMS = [ 12 | (0, '申请中'), 13 | (1, '已通过'), 14 | (2, '已拒绝'), 15 | ] 16 | STAR_ITEMS = [ 17 | (0, '白羊座'), 18 | (1, '金牛座'), 19 | (2, '双子座'), 20 | (3, '巨蟹座'), 21 | (4, '狮子座'), 22 | (5, '处女座'), 23 | (6, '天秤座'), 24 | (7, '天蝎座'), 25 | (8, '射手座'), 26 | (9, '魔羯座'), 27 | (10, '水平座'), 28 | (11, '双鱼座'), 29 | ] 30 | stu_id = models.CharField(max_length=10, verbose_name="学号") 31 | name = models.CharField(max_length=128, verbose_name="姓名") 32 | sex = models.IntegerField(choices=SEX_ITEMS, verbose_name="性别", default=0) 33 | constellation = models.IntegerField(choices=STAR_ITEMS, verbose_name="星座", default=0) 34 | birthday = models.DateTimeField(verbose_name="生日") 35 | hometown = models.CharField(max_length=128, verbose_name="家庭住址") 36 | 37 | byword = models.TextField(max_length=128, verbose_name="人生格言", blank=True) 38 | status = models.IntegerField(choices=STATUS_ITEMS, default=0, verbose_name="审核状态") 39 | created_time = models.DateTimeField(auto_now_add=True, editable=False, verbose_name="创建时间") 40 | 41 | def __str__(self): 42 | return ''.format(self.name) 43 | 44 | class Meta: 45 | verbose_name = verbose_name_plural = "学生信息" 46 | 47 | 48 | # 星座信息表 49 | class StarInfo(models.Model): 50 | name = models.CharField(max_length=128, verbose_name="星座名字") 51 | value = models.IntegerField(verbose_name="数值", default=0) 52 | 53 | def __str__(self): 54 | return ''.format(self.name) 55 | 56 | class Meta: 57 | verbose_name = verbose_name_plural = "星座信息" 58 | 59 | 60 | # 男女比例表 61 | class SexInfo(models.Model): 62 | name = models.CharField(max_length=128, verbose_name="性别") 63 | value = models.IntegerField(verbose_name="数值", default=0) 64 | 65 | def __str__(self): 66 | return ''.format(self.name) 67 | 68 | class Meta: 69 | verbose_name = verbose_name_plural = "男女比例" 70 | 71 | 72 | # 省外同学地图坐标信息 73 | class GeoInfo(models.Model): 74 | name = models.CharField(max_length=128, verbose_name="姓名") 75 | hometown = models.CharField(max_length=128, verbose_name="家乡") 76 | value = models.CharField(max_length=128, verbose_name="家乡坐标", default=0) 77 | coords = models.CharField(max_length=128, verbose_name="箭头坐标", default=0) 78 | 79 | def __str__(self): 80 | return ''.format(self.name) 81 | 82 | class Meta: 83 | verbose_name = verbose_name_plural = "省内学生" 84 | 85 | 86 | # 省内学生信息表 87 | class AnhuiGeoInfo(models.Model): 88 | name = models.CharField(max_length=128, verbose_name="姓名") 89 | value = models.CharField(max_length=128, verbose_name="家乡坐标", default=0) 90 | coords = models.CharField(max_length=128, verbose_name="箭头坐标", default=0) 91 | 92 | def __str__(self): 93 | return ''.format(self.name) 94 | 95 | class Meta: 96 | verbose_name = verbose_name_plural = "省内学生" 97 | 98 | 99 | # 学生总数 100 | class ProvinceInfo(models.Model): 101 | name = models.CharField(max_length=128, verbose_name="省份名称") 102 | value = models.IntegerField(verbose_name="数值", default=0) 103 | 104 | def __str__(self): 105 | return ''.format(self.name) 106 | 107 | class Meta: 108 | verbose_name = verbose_name_plural = "学生总数" 109 | -------------------------------------------------------------------------------- /backend/mysite/mysite/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for mysite project. 3 | 4 | Generated by 'django-admin startproject' using Django 4.0. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.0/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/4.0/ref/settings/ 11 | """ 12 | 13 | from pathlib import Path 14 | import os 15 | 16 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 17 | BASE_DIR = Path(__file__).resolve().parent.parent 18 | 19 | # Quick-start development settings - unsuitable for production 20 | # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ 21 | 22 | # SECURITY WARNING: keep the secret key used in production secret! 23 | SECRET_KEY = 'django-insecure-s@!upd2m5+oz2q*9x--088&q4o6*&0ghzqq3ijx15a!s#8wfuw' 24 | 25 | # SECURITY WARNING: don't run with debug turned on in production! 26 | DEBUG = True 27 | 28 | ALLOWED_HOSTS = [] 29 | 30 | # Application definition 31 | 32 | INSTALLED_APPS = [ 33 | 'student', # 学生信息应用 34 | 'simpleui', # 美化后台 35 | 'corsheaders', # 允许跨域请求 36 | 'crispy_forms', # 美化表单 37 | 'rest_framework', # 开发API 38 | 'django.contrib.admin', 39 | 'django.contrib.auth', 40 | 'django.contrib.contenttypes', 41 | 'django.contrib.sessions', 42 | 'django.contrib.messages', 43 | 'django.contrib.staticfiles', 44 | ] 45 | 46 | MIDDLEWARE = [ 47 | 'django.middleware.security.SecurityMiddleware', 48 | 'django.contrib.sessions.middleware.SessionMiddleware', 49 | # 一定要注意这个位置 50 | 'corsheaders.middleware.CorsMiddleware', 51 | 'django.middleware.common.CommonMiddleware', 52 | 'django.middleware.csrf.CsrfViewMiddleware', 53 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 54 | 'django.contrib.messages.middleware.MessageMiddleware', 55 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 56 | ] 57 | # 跨域设置 58 | CORS_ALLOW_CREDENTIALS = True # 允许携带cookie 59 | CORS_ORIGIN_ALLOW_ALL = True # 这句不加会只发一个options请求,post请求不会发出 60 | 61 | ROOT_URLCONF = 'mysite.urls' 62 | 63 | CRISPY_TEMPLATE_PACK = 'bootstrap3' 64 | 65 | TEMPLATES = [ 66 | { 67 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 68 | 'DIRS': [os.path.join(BASE_DIR, 'mysite/templates')], 69 | 'APP_DIRS': True, 70 | 'OPTIONS': { 71 | 'context_processors': [ 72 | 'django.template.context_processors.debug', 73 | 'django.template.context_processors.request', 74 | 'django.contrib.auth.context_processors.auth', 75 | 'django.contrib.messages.context_processors.messages', 76 | ], 77 | }, 78 | }, 79 | ] 80 | 81 | WSGI_APPLICATION = 'mysite.wsgi.application' 82 | 83 | # Database 84 | # https://docs.djangoproject.com/en/4.0/ref/settings/#databases 85 | 86 | DATABASES = { 87 | 'default': { 88 | 'ENGINE': 'django.db.backends.mysql', 89 | 'NAME': 'mysite', 90 | 'USER': 'root', 91 | 'PASSWORD': 'root', 92 | 'HOST': '127.0.0.1', 93 | 'PORT': '3306' 94 | } 95 | } 96 | 97 | # Password validation 98 | # https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators 99 | 100 | AUTH_PASSWORD_VALIDATORS = [ 101 | { 102 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 103 | }, 104 | { 105 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 106 | }, 107 | { 108 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 109 | }, 110 | { 111 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 112 | }, 113 | ] 114 | 115 | # Internationalization 116 | # https://docs.djangoproject.com/en/4.0/topics/i18n/ 117 | 118 | LANGUAGE_CODE = 'zh-hans' 119 | 120 | TIME_ZONE = 'Asia/Shanghai' 121 | 122 | USE_I18N = True 123 | 124 | USE_TZ = True 125 | 126 | # Static files (CSS, JavaScript, Images) 127 | # https://docs.djangoproject.com/en/4.0/howto/static-files/ 128 | 129 | STATIC_URL = 'static/' 130 | 131 | # Default primary key field type 132 | # https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field 133 | 134 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 135 | -------------------------------------------------------------------------------- /frontend/public/static/map/china-contour.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"100000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@š¦ŜiÀºƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅ó­@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ AɞÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĒĞȠzÐŘΰH¨ȔBĠ "],["@@ƛĴÕƊÉɼģºðʀI̠ÔĚäœθؾNJŨxĚĮǂƺòƌ‚ĪŐĮXŦţƸZûЋƕƑ’ʳÛDžƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"],["@@Óɖ± dƊ½ǒÂň×äı–§ĤƩ™¶hlçxĬŸĄŞkâ’ÌwøàIJaĞ‚fƠ¥Ž„Ŕdž˜®UɎÖ¢aƆúŪtŠųƠjd•ƺŠƺÅìnŽŢ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼìĴPðŀbþ¹ļD¢¹œ\\ĜÑ̔ùўÊ‰ȮŒǪűŽÀêZǚŐ¤qȂ\\`ºłĤ\\ºs|zºÿŐãѦvĪĺĺ†ĈłÈ͚FÞºĠUƢ¾ªì°`öøu®Ì¼ãÐUÞ˶¬æɒlʐߨvWʚ”ÖÕÁÜÅŵ­_«”E”ÍɪëÏ÷ÅyXo͂ĝĂÛÎf`Þ…¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘETėº¯ɀáMĺŝOéȇ¿ÖğǤǷŔ²å]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±‚řü›]µȺrĦáŖuҞª«IJ‡πdƺÏɌ]͚œĐ™ǂZɔ¹ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥Ǖǚk˦ӷxūД̵nơԆ|DŽŽࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãɜRצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´ԜÃƲÀɠmǐnȺĸƠ´ǠNˠŜ‚¶ƌĆĘźʆȬμƒĞGȖƴƀj`ĢçĶȅŚē̃ĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDƞŧǘÛۨĝȘIJžªǬ”¾äʀƪ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊ˰ȎŜHĦðDĝŒ|ø˂˜ƮÐ¬ҌqjĔ²Äw°dždĞéĸdîàŎjɒĚŌ‡ŜWÈ|Ŗ‡¶îÎFC•ĊZĀēƄNĤ¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Šų¬K°ȧǵÂcḷ̌ĚǣȄɧ\\ĵœŇ‹ȣFέ̿ʏƶɷØ̫»ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔDzlжøZh¤Ɛ E ĈDJ˜ì¸̚¸ƎGú´Pž¬WÄì–HsIJ¾wLVnƽCw`h`¥V”„¦U¤¸}€¾Ô[~âxh¢ªHÆÂr–iĐɘǜhÀoRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚ÈÄ[|òDȎŸÖdH„Ʈ–Àì~Ǝ†â•¦^¢ķ¶e”ÐÚEꖄɡČÅyġLû™ŇV®ŠÄ‰Ðź~ϰƂŤǒȦÒŬÂezÂvǴZ„{ĘFǜĴAΜĐȄEÔ¤ØQĄ–Ą»ΈZǺ¨ìSŊÄƸwŠn¼–c]—ܬì¯DŽ]ȘŏńzƺŷɄeeOĨS’Œfm Ɋ’̎ēz©þ†ÐÙÊmgŸÇsJ¥ƔˆŊśÎÔsÁtÃßGo—À­ xňË_½ä@êíuáĠ[ġ¥g“ɊדûÏWXáǠDZÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Dz¡SíċġHµ ¡EŃļƒrĉŘóƢFƺ«øxÊk†”ƈdƬÌr|©ÛńRŀƒøďŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^gēĊĕƯǏx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ɏ‘~”ȰCĐ´Ƕ£’fNÎèâ_ÐŮeʆNJǘuȔ\\¤ÒĨA¢Ê͠æÔ ŬGƠ”ƦYê‹ŊàƆXvkmŸͥœ@čŅĻA“¶çÎqC½Ĉ»NŸăëK™ďÍQ“Ʌ›řęgßÔÇOÝáWáħ£˯ā¡ÑķĎÛ寰WKɱ_d_}}vyŸõu¬ïÏҽ@gÏ¿rýб…Cd‰µ—°MFYxw¿CG£ǧ«»ó¡Ɵš¿BÇƻğëšܭNJĭôµ}‰čÓpg±˜ƒǫŋRwŕnéÑƕfSŸŋ‹®ÍšD Ûǖ֍Ÿ]gr¡µŷzįm³~S«“„›þeo³l™•{iē¥yZ÷īŖõġMRÇģZ“mÃ|¡™ģTɟij“Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜTNJŋB…h–¬ƩDoˆ±enq©G`™wGçǑ‚“K‰‹F‚“›uNĝw‡őXtW·Ýďæßa}xV•—XR‰ãQ`­©GŒM»­”ďϝd‡©ÑW_ÏǷr¡…é\\ƒɹ~ɍuØ©Bš¤ÝĤ½¢Å_Á¿•LŅñuT\\rÅIs®y}’ywdS™DZtCmûvašʋJr€Ư‚⦳P‡rbbÍzš€wBG’ĭ€T†Ák‘»ƒlY­ċ²z“Ç£—^§»d¯íŻŽ£ćGŵDžƍÓ]í“M^o•£Ã]ªUóo½~ŕ‘|ŋݘ¥ċh“¹·CÉ­Dřlg‡ȵë[‘’}ģS}xƃği©ĝ‡ɝǡF꼵áƣ©‚Hžĕoƫ€Ňqƒr³Ãg[„šÃS–ő_†±ÅFC¥Pq{‚ñg—¿įX…•ƝıĉNj•ûěʼn³F‘¦oĵ—hŸÕP{¯~TÍl¸ÓßYÏàs{ÃVU™™eĎwk±ʼnVÓ½ŽJūĉ»Jm°fϑdF~ˆ€ĀeĖ€O˜² Ĉ‰żĀiÂd^~ăÔHˆ¦\\§|ĄVez¤NP ǹӗR™ÆƇP[¦´Âghwm}ÐШźhI|žVVŽ—Ž|p[¦À¶èNä¶ÒCÀ¢^h—PfvƾĪ×òúNZÞÒKxpw|ÊEZŽI¨®œİFÜçmĩ‚WĪñt‘ÞʼnËÝ^³uL‚±|Əlĉ¥čn§ßÅc‘˜B× CNƒǟ‹_ñŧı¯Y]ăٟ™Ľѷť‹³ÃAR‹‡ZRlʑýSëÍDěïÿȧ¢ÙġƒěŗŷęŸUªhJˆƁ™ƅn³gF‹³HàŋÅÃƉÀKšť`ċŮÁõYėé÷`ٚ_Ïǵ—R§òoEÅąLœŐœƜVµąłíļĐ·ũ̈«ªdÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿäćú y±¨Mf~C¿`€à_ŒÿƌfQnð³ƬˆŲŎ¥ĠʦĘĒØ‰¼Â†±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«Múīô‰Ö°ʊkŲÆM|²@¤u•ƒ¤Û´Œä«̰\\„}ēƒ‹ÅM•¼Ã­]NągoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøC̍ƃhÛ­–Ň\\bÅxì²ƝýN‰īCȽĿǃšŖÕy\\‡¹kx‡Ã£Č×G¿Ï¤ÁçFQ¡„KtŵΥëÚź—Љ«ėn½ĉŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕñžx———Z¯u™Œ…Ï•˜ï{éƵP—™_K«™pÍÁwƏčaE›U”£uݘāɌŁFŴu»¹İ×ȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±hǥ®jű¢KOķÅ}`åÂK­_Юƫ²ʯÊ^H{ǸÃĆēĤȍzȥݵċF͓ŸI©Õ͈ǫȌȥ¦ŋEӏ“†ıŪěřÀåżȟLƏ—ŽąđGǛģLjƧĎOłčȶʋÀBŖÕªˆŠÁŐTőŕåqûõi¨hÜ·ƒñt»¹ýv_[«²Kƒ{L¯‰SªƒGѵ¸•gÑpY´«•ęœƘʑcoċ\\œ­gěŧ«Āý¶ŧ·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZ~﵉fzʼnfåÂȝǷÕĕÊĉ{ğč±uƁí]Í»ęX\\­•Ip™¡éĥZE‹ãoP…þy—¸k³—†¡ƽŸ¿å³BRضˆœWlâþäą`“]aģc— ĹGµ¶H™åՌ‰¾xĨ‡ôȉðX«½đCIŇOK³Á‰Äţ¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNrį~IМ‘êĘÎG§Ė¥Ý™F{ WK}ùaH‘āÖ{OoužHEÅǍqĬuë±KEò£‰UplÀ÷tMāe£bYÂý¡a±Öcp©®^ö±q…ÇGjųªKy¬ŏ–®¤ÉEŸ–ĀåA¬ˆV{Xģ‰Đƒpě…¼³Ăp·¤ƒīyÚ¡ŅLĻŗž§qlŸÀh¬µ»åÇGnùčÙmÆß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěYÓ±]ÓđīkWó«íěCŸŇͱ™‘čvĭõĉ‚ę÷N¹³ĉoTĵËçŁYلǝŕ¹tȏģ·Ĕĭ|đėÊK™½R‘ē ó]™ĀęAx–ŸNk©|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™áÎÁąÏŸHcòßÎſ¿Çdğ·ùT×Çūʄ¡XgWÀLJƟψOj YÇ÷Sğ³kzőȝğ§õ¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰Ƈ׫BhlmtÃPµy‹ÓɉUīí}†€GBȅ‰ŹãĻFŷŽǩoo¿ē‹±ß}ŽwƋtƺ—CőØEîǻīƓʑã͘ƍ“DĈ±ÌŒÜӔĨ£LóɢVȞĆĖMĸĤfˆÜǗjđĆ»ýͥãğ¶ĞØO¤Ǜn³Žő}‹¦…·z€YŠwa™–šőűMę§ZĨ훘Û]é’ÛUćİȹ¯…dƒy¹TcÂĕ½A´µê÷wĻþÙ`K€¦˜…¢ÍeœĥR¡ˆã…‚Ĉu¼dl‰t‚†U¶¶ď\\zœ}ưŬ–{ÚfKš¶Ð_„ÂÒ¿C©Ö•TmuŸ¼ãl‰›ŇÕVåĤĵfÝYYįk‘ÒīØſNQĠ³r³øÓrŸÖͳgÍſGįÅ_—±he¡ÅM²Ɠ綾ßīZgmk„ǭƁć¦UĔťƒ×ëǟ…e˭ʔħǛāĘPªij¶‘Ņăw§n‰ď£S»şŒÍļɉŀ‰}ÛÞ»å£_ˆŸıęÏZ—÷`…[„ùx½}ÑRH‘YėĺďsÍn‘™é½Ya¤Ïm¬ĝg•ĂsA•ØÅwď‚õ¤q}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónȯ×âpÒŌ“Ø Tˆêa²ËX€€c̋lLìģËŁkŻƑŷÉăP¹æƧÝ¡¦}•veèÆ´UvÅ~§‡½˜“Ġ²Ŵwæč\\Dƒ}O÷š£[ŽăŒá[™‚į‰ŷvŸœRsdĒƄwžŎĒo~t¾ÍŶÒtD¦Ú„iôö‰€z«Ųƭ¸Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†AĦw\\ưĆ ¦g–ʉË£¢ι‰ǫßK‘ÙIįóVesb‘aĕ ǠƺpªqŒ‚ďŒE˜®tŸôřk˜ȌwêżĔÂe‚nËÂQƞ´’¼ŲƝÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“¬oêDŽŲÚr^¯°’^º{ªBHŒ²Ö¤ɦ§Țv€qĸ„ ­viļ€ndĜ­ĆfŒ“xÝgyށqóžSᝑ³X_ĞçêtrmÚ§z„¦c¦¥jnŞi˜¯´ÓH@ÂċĂჷÌ_þ·–¹_wzË£Z­¹|ŕWM‰“|O¥ÃWTÕ­ùÔQ†¥‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnkòəėªƒ²œm˽ŏġǝʅįĭạ̃ūȹ]ΓͧŹəăЕ·ƭˆęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖƝ^ęuůÞiĊÄÀ\\Æs¦ÓRäšřÌkÄŷ¶½÷ùCMÝۛĥ°G¬ĩ`£Øą‚ğ¯ß”§aëbéüÑOčœk£ÍI ïCċÀÕÕĻSŧʼnïŽŗãWÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔŠƦ›Ú@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxĉWù׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRÑÈěVVе‚õ‡«Œ¯ůĉ¥áºaeõ|uĐh`Ü³ç@šƋĿa©|z²Ý¼ŸĴ貋ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaňæêSĈ½Ž½KÙóĿeƃÆBŽ·¬ƃV×ĴƳ˜lŒµ`bԑ¨ˆÐÓ@s¬ƿ‚ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSÄį¤Ç[ǾµMW¢ĭiÕØ¿@ŠÂ…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨^“ƒ±ze…ė·¥Ó@~¯‹éīB™Š\\”āƚǗÀƷŘóQīÈáP•œǥ@ŗĸIæÅ„hnszÁCËìñšÏ·ąĚÝUm®ó­Z±đ[‰Âÿiñ¬‰Òj°ŁŤ_uµ^‘°ŒìÇÊĶĒ¡Æ‡MğźİĨƥôRŽāð©[wâ䥩Ô\\°ÝĄ̄Ƣ’ăk™néǀůŠ˜ĆK„ĒĬœ¶è‰âz¨u¦¥L~ƄýÎIƖߔµĔƱĐċņbÎՂĄæ_ƞZRÖíŽJ²öLĸҜcºƖÎ\\ñºÛqY–Ѩ`x¥’ù^•}ƒÌđYªƅ”Aйn~Ꝛf¤áÀz„gŠÇDIԝ´Aňńňĕuĩt[{ù°ŁÏ•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGǣ@Dü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKÕK‡ÄNô‡ŠfœƫVó¼dz—H‘‹QµâFšù­Âœ³¦{Y‹Â¢ĚÜO „€{Ö¦ÞͨJÜÄƨ€lŽU˧ªÍE˨¡ĐĬĬùÎRƠŸHÕŔ_ƪàÒKäȇĬə²ȕnáûl—÷eǛò•Ğ\\ªÑò˜Üìc\\üqˆÕ[ēdžċªbØ­Œø|€¶ȴZdÆÂšońéŒGšŠǚnìÈƲ‚ہȖưòTxÊǪMīИÖŲÃɎO̚ǰއRěò—¿ġ~åŊœú‰¬ô¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ŀ¤ĄYÒ©ÊfºmԈȈ¡DŽ~¤„s²‚”ʘچžȂVƼîèW²æIJXŔþɔÖĚêϜêĮŢɨJ€˜¯ÎrDDšĤ€`€Q¾§~wâJÂ˜ñÈOú¤p¨ŪŊMǎÀW|ų ¿¾ɄĦƖAiƒ÷fØĶK¢ȝ˔"]],"encodeOffsets":[[[112750,20508]],[[123335,22980]],[[82455,44869]]]},"properties":{"cp":[116.3683244,39.915085],"name":"中华人民共和国","childNum":3}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/map/province/taiwan.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"type":"Feature","id":"710000","properties":{"name":"台湾省","cp":[121.509062,25.044332],"childNum":82},"geometry":{"type":"MultiPolygon","coordinates":[["@@@BBB@@B@@@@@@B@@@@B@@A@@@@@@BB@@B@@AB@@@@@BA@@@@@@BA@@@@BA@@@@@A@@B@@@@@@@@A@@@@@@B@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@A@@@@@@AA@@@@@@@@@@@@@@@@A@@@@@@@@@@A@@@@@@A@@@@@@@@@A@@A@@@BA@@@AA@@@@A@AB@@A@@@A@@@@B@@A@@BA@@B@@A@@@@@@@@B@@@@@@@@@@@B@@@@@BDB"],["@@@@@@@@@@@A@@@@@@@@@@@@@B"],["@@@@@@@@@@@@B@A@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@A@@@@@@@@@B@@@AA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@B@@@@@@B@@@@@@@"],["@@B@DA@@@@B@@@@@@@@AA@@@A@@@@@A@@@@@@AA@@@A@@@A@@@A@@@@B@@@@@BB@@@@@@@@@BB@@@@B@"],["@@@@B@@@@@@@@@@@@@@@A@@@@@@@@@@@"],["@@@@@@@@@A@@@@@@@@@@@B@@"],["@@DHBDB@DC@KACEA@@ADAF"],["@@BDDBBBDAFE@C@@CAI@@@CF"],["@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@B@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@B@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@"],["@@@@@@@@@@B@@@@B@@@A@@@@@B@@@@@@@AB@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@A@@@@@@@"],["@@@FFD@@BABABCCE@CA@ABCF@@"],["@@B@@@@@@@@@@@@@@@@@@@@@AA@@@@@BA@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@"],["@@BBFDD@@@B@@BB@@@@@B@@@B@B@@@@@D@@@B@B@@AB@@@B@B@BA@@@@@B@@B@@@@@@A@@@@B@@@B@@@@@@@@@@@@@@@@@B@@@BABADABABA@A@@B@AA@@@AA@@@AA@@A@@@A@@@@@A@@@A@@@@@A@A@@@@@A@@@A@@@A@@@A@@@A@@@A@@@@@@@AB@@@@@@A@A@@@@A@@@@A@@A@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@A@@AB@@@A@@A@@@BA@@@A@@@A@AAAAC@CAAAC@@BA@@@A@@@@@A@@@@@@B@@AB@B@B@BBFDDDBDB"],["@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@AA@@@@@"],["@@@@@@B@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@"],["@@@@B@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@B@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@A@@@@A@@@@B@@B@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@B@@@@@A@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@A@@@@@@@B@@@@"],["@@@B@@B@@@@@@@@A@@@@@@@@A@@@@@@@@@"],["@@B@@AB@@A@@@@@@@@B@@@@@@@B@@@A@@A@@@@@@@@@@@@@@@@@@@@@A@@@@@@A@@@@@@@@@@@@@@@@@B@@A@@@@@@@@A@@@A@@@@AA@@@@@@@@@@@@B@@@@@@@@A@@@@@@@@@@B@@@B@@@@@@@BA@@@@BA@@B@BA@@@@@@@@@@@A@@@@@B@@@@@@@@BB@@@@@B@@@@@@B@@@@@@@BB@@@@@@@@@B@@@@A@@@@@@@@A@@@@@@@@@@@@@B@@A@@A@@@@AB@@@@@@@@@@@@@@@@@@@@@@A"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@A@@@@@B@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@B@@@@@BA@@@@B@@AB@@@B@@A@@@@@@@@@A@@@@@@@@B@@@@@@@@@@A@@@@@@@@@@@@A@@A@@@@A@C@ABA@A@AB@@@@@@@@@@@@@@@@@@A@@@@@A@@@A@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@B@@@@@@@@@@@@@@@@@@@BB@@@B@B@@@DB"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@B"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@B@@@@@@@@@@@A@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@A@@@@@@@@@@@B@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"],["@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@B@@@@@"],["@@BB@@D@BA@@ACAA@@CB@D"],["@@@BD@BA@A@@AAABA@@B"],["@@BNHFNHN@@@BGFI@@AAEAECECIEEAGBAH"],["@@@@@BB@BAB@@AAAA@AB@B"],["@@BVFLTZLLHJLPHJJNNPHJFFFB@@BC@AKOW[WaEM@GGIGGGGCGCEAGEEAA@@EF@@"],["@@LTHHFHHHDDDBJADB@@@@@@KMIIIIOQEA@@@@AD"],["@@BD@@F@BCB@ACC@A@ABAB"],["@@@BBBF@@@@@@CAACAAB@B"],["@@@BDBDABC@@CA@@C@AB@B"],["@@n‰n]Nµoz[‚¹ňiÚĎUÒGtANCDV±v]ROXEZDhD`J\\N\\NX^°f¼FfHVLRTZVzHˆD€H¦H ALK^[|I`AdFdFpF¸A\\FP^f\\\\XlZhVbLRnXbRhRXHTXHTT’BRPdZZ^XV‚v–`‚†º†ŠtzPxV‚|l~t¸˜¾|€rv\\œ`Œb|f`~lVV\\TrVdRhTX\\`fLPJJ^TJFNXHTJŒFpHZJXLZZlZhZlPZ^`jd\\jLZHjFRFJJFHDPD^BZLfZPJNFhDL@LDjd|bv^xJèRŽV^PfnV‚Zr€‚dVpV|VhHvDr@bIjShuP]LWHE^KZA\\IJO@aDU|qRKJA`BbAlKbK^WNCt@ŠF\\@LILEBGCMBaBgDST‡LMNATBbARGNEHERKHMAMc_oeycgya_s‰IoC{@oFul¿|­D]G§ImUcGWEkOYƒ—U‘M™k…wƒ•¿ckW[QoCa[giaK[DiL[XiH[CQeƒg­…ƅŸƙc­CiDaAeEIQeY‘U¹GsEWMYIKKMUWW[M]OkBQCMSq@KHgRsFO@QAIEGGIKKMKMGYKOASICEQyMYyc‰as—ce[YMSgOgYew{scljyUaOKMU}AeAUSOSU[{ċmË_µE‹E«E•C{@]@MFMHMDgCE[ISKKOYKSWKIIEYBcFcDaFoKOIGMCWDMH]^‘j_FQBQMIKWAWFQFSNm–W\\_¦@ZJVJVAA¤OŽM†I^M\\_xeˆcvWd_^‹‚WPmT^"],["@@LFBBHLBB@DBDB@F@@A@AAA@ABAD@D@DAFEBE@CACCAE@A@@C@CA@EBE@A@CAAECIAC@@AB@B@DCJA@ABC@@B@D@BBD"],["@@BBB@B@BABA@A@@@@B@@@@B@@@@@@B@@AAA@@@@A@@@@@@A@@@AAA@@@@@A@A@@@@B@@A@@@A@@B@@@AAAAA@@@A@@B@@@@@B@@@BB@@D@B@@@B@B@@@@@@ABA@@BA@@B@B"],["@@BBBBF@B@@@BBB@B@BAB@B@BA@@@ACACAAAA@@@E@A@A@@@CB@B@B@@"],["@@@JDHB@BBFHBLDFHBF@HGLIFALAJDDABC@CGKEAKAOACAAAAC@EDKBI@M@IEKAAC@C@A@@CDIBACGAE@A@EBCDEBEACECG@QDEBCBA@A@CAAEE@I@ECICG@IBAB@DBFRHDBDJDBD@FCFCF@FDBDBDF@BDBJ@FCDGFIBABBHDDF@BC@AB@D@BD@HBHDFBBBBABCBEFAD@DDF@D@D"],["@@DDBB@@B@DAD@D@@AB@@C@GACEEE@C@AAA@ADE@@BBB@@GD@D@B@BB@B@BAD@BBBB"],["@@`JPDLFHAFEFAF@BBD@JAHGDIFC@ACCBGFEAGAGA@GBEACC@EBEFAH@DCAECAC@AA@C@EACCCECCB@DCBC@CAEAA@ADDLBDFDBHADKHKPEL@FCBE@GEEICCEAMDIHAFBNFH"],["@@IGEGOGEGECEBECGMAE@AFA@EAECCACBGACACE@MFIBGASCGCGBCF@F@FBFAFEDGBGCCBEFAD@DAD@BC@A@AB@DCBABCAEBAHBLHLDFH@DIBC@IHIBGBC@CD@DFHDHCDABGDAD@BDDFF@JAFAFBBBAF@DBDBDBDADEDK@YEOBIFAH@FBDBBFADAB@BDADABICG@C@AD@BBBDB@B@FADDDDBFBBDCHEH@DBBN@LBFDDHDBDBDADIBGDKDEF@DB@HBDFDFFBHEH@LDFDBVBF@FFLBFCJMFAHBFHDHJBF@FGBGDEF@D@DHF@FCJMLSBW@MHELCFGCKSEOAMDOJMDUAIE"],["@@@F@@BBF@BA@A@AB@B@DA@@DB@BBB@BBBF@FDDBFBDABBBBBBB@JEBA@A@ACAC@EAMICAE@E@EAA@C@CCC@C@CBADBF"],["@@CBAB@DBBBB@BBBBAB@B@@@BBB@BA@C@E@AEAE@"],["@@DBDAB@B@BBAD@BDDD@BAB@@BB@@@D@B@BBDBDADABC@EBA@A@A@@AACBA@C@A@CBCAEACCAC@A@AAAABAB@BC@A@A@AF@D@D"],["@@ADADAB@DDDF@DEBEBAD@@@DDBDD@DABC@C@CAIBEBEBABA@ACC@AD@BBBDBBDABCAIAAE@CAA@@A@C@C@C@CFE@A@@G@EBCBCAE@E@G@AAC@CD@D@FFHFB@FAFAL@LBDDB@DAB@B"],["@@B@@BB@@B@B@B@B@BB@B@DAFCBA@@@@@AB@BBB@BABABA@AA@AAA@@A@@@CAAA@EAC@A@AAA@A@AAA@A@@DCDBDBDBD"],["@@@BB@@B@@@@@B@A@@BA@@BA@@@A@@B@@@@A@@A@A@@@@@@B@@A@@@@A@@@@AB@@@@@@@B@@@@"],["@@@B@BBB@@B@@@BA@A@@@A@A@@B@@A@A@@A@@@A@@@A@A@@@@B@B@B"],["@@`FPBLAFC@AEGAG@K@GCCA@EBC@GCAG@GACA@C@MDIBABADBDDFDFEFCDGHAF@DDDJB"],["@@DBD@B@B@B@BA@@@CAAA@A@@A@@@@@AA@@@@AA@AA@@@@@A@AA@@@ABCA@@@AAAA@AB@B@B@BDBB@BB@D@BBB@B"],["@@CF@B@BBBB@DADBBAB@BEACB@AA@@E@CBA@"],["@@HBHBF@DABA@AAAAA@@@A@AB@@A@AA@A@A@AAA@C@@BA@A@CBAD@@A@@B@B@B@B"],["@@LDH@HABA@CAC@A@AAACAAAAC@C@CAAAC@@AA@BED@DA@CF@BBB@D@BAB@B@D@B@B"],["@@NHBJBJ@FBDJJHBTHHAPKBEAGGIMIMKGEIIICG@GHCFBH"],["@@NIHAzBVDPBL@DADIAGAE@KFKDEBCCAGAC@CE@IBIDGPIXKVGBE@GAIGOMOGAK@]LIXMJODS@MFY\\UNELDXDF@FCHOLCD@JBFJDJ@"],["@@AB@BBBD@JDD@D@@ABA@C@E@CAAAACAC@C@ABAD@DABAB"],["@@RCL@JDFBDADBB@BAF@FAJDL@DA@EBIDE@EACACAEBGCCEACCCE@CDGHG@CAEEAO@EBCDAHGFOFG@GBAD@DBHBHCDAJEDEHAJAHDB"],["@@HED@D@B@BFDHFBD@HAHEBC@EBADAB@BA@CACCCC@A@ADA@E@EAC@G@IDCHCDCBAB@B@B@@B@"],["@@@DBDB@BBDA@ABC@AACAAA@A@CB@D"],["@@HFH@F@BABC@E@EACECCAEBEDCFAFDD"],["@@LFN@JCHI@I@IEGGAMBKBCLCJDL"]],"encodeOffsets":[[[126651,26546]],[[126660,26547]],[[126659,26546]],[[126661,26545]],[[127552,26543]],[[126662,26541]],[[126660,26540]],[[126515,26405]],[[126526,26402]],[[126513,26397]],[[126513,26396]],[[126509,26395]],[[126510,26395]],[[126548,26376]],[[126537,26371]],[[126433,26363]],[[126456,26365]],[[126461,26357]],[[126459,26356]],[[126459,26356]],[[126460,26356]],[[126459,26356]],[[126445,26356]],[[126458,26356]],[[126458,26356]],[[126458,26356]],[[126457,26356]],[[126457,26356]],[[126429,26350]],[[126512,26346]],[[126512,26347]],[[126512,26347]],[[126515,26343]],[[126520,26341]],[[126514,26339]],[[126514,26339]],[[126515,26339]],[[126513,26338]],[[126513,26338]],[[126526,26337]],[[126527,26337]],[[126526,26337]],[[126527,26336]],[[126526,26336]],[[126527,26336]],[[122469,24374]],[[122474,24363]],[[122424,24251]],[[122554,24186]],[[122886,24033]],[[122929,24079]],[[122214,23857]],[[123719,22284]],[[123719,22276]],[[123335,22980]],[[122472,24310]],[[122427,24288]],[[122531,24227]],[[122375,24193]],[[122479,24184]],[[122427,24235]],[[122518,24117]],[[122382,24050]],[[122390,24070]],[[122392,23926]],[[122366,23948]],[[122185,23966]],[[122188,23883]],[[122204,23878]],[[122288,23774]],[[122388,23820]],[[122378,23824]],[[122484,23808]],[[122542,23818]],[[123244,22864]],[[124427,22618]],[[124526,22475]],[[124384,23221]],[[124866,25441]],[[125038,26094]],[[125007,26245]],[[124862,26043]]]}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/src/components/Sex.vue: -------------------------------------------------------------------------------- 1 | // 男女比例 2 | 7 | 8 | 272 | 273 | 276 | -------------------------------------------------------------------------------- /backend/mysite/student/views.py: -------------------------------------------------------------------------------- 1 | from django.http import HttpResponse, HttpResponseRedirect 2 | from django.shortcuts import render 3 | from django.urls import reverse 4 | from rest_framework.viewsets import ModelViewSet 5 | 6 | from .forms import StudentForm 7 | from .models import * # Student, StarInfo, SexInfo, GeoInfo, AnhuiGeo 8 | 9 | from .serializers import * # StarInfoSerializer, SexInfoSerializer, Geo1Serializer, Geo2Serializer, Geo3Serializer, \ 10 | # Geo4Serializer # StudentSerializer, 11 | 12 | import requests, json 13 | 14 | 15 | # Create your views here. 16 | # 用户提交信息数据 17 | def info(request): 18 | # 如果请求方法是POST 19 | if request.method == 'POST': 20 | # form存储提交的所有数据 21 | form = StudentForm(request.POST) 22 | # 如果提交的全部正确 23 | if form.is_valid(): 24 | # 储存数据 25 | form.save() 26 | # 跳转到成功页面 27 | return HttpResponseRedirect(reverse('student:succeed')) 28 | else: 29 | # 如果数据不符合要求(填写不符合规范)空表单 30 | form = StudentForm() 31 | 32 | context = { 33 | 'form': form 34 | } 35 | return render(request, 'info.html', context=context) 36 | 37 | 38 | # 提交数据成功 39 | def succeed(request): 40 | # 获取student表里的所有对象 41 | students = Student.objects.all() 42 | context = { 43 | 'students': students, 44 | } 45 | return render(request, 'succeed.html', context=context) 46 | 47 | 48 | # 此类用于计算和更新数据 49 | class data_compute(): 50 | 51 | # 更新星座数据 52 | def star_update(self): 53 | star_list = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座'] 54 | queryset = Student.objects.all() 55 | # 遍历十二个整形数据,其在数据库中对应的是十二个星座 56 | for star_number in range(12): 57 | # 开始遍历star_number个星座 58 | # 计数 59 | count_value = 0 60 | # 遍历所有对象,统计当前星座的个数 61 | for item in queryset: 62 | if item.constellation == star_number: 63 | count_value += 1 64 | # 如果StarInfo表中该星座行已经创建,说明该星座value变了,需要更新(修改)value数据 65 | if StarInfo.objects.filter(name=star_list[star_number]).exists(): 66 | instance = StarInfo.objects.get(name=star_list[star_number]) 67 | # print(count_value) 68 | instance.value = count_value 69 | instance.save() 70 | # 如果StarInfo表中该星座行没有创建,那么我们创建该表 71 | else: 72 | StarInfo.objects.create(name=star_list[star_number], value=count_value) 73 | print("星座数据已经更新完毕!") 74 | return None 75 | 76 | # 更新性别数据 77 | def sex_update(self): 78 | sex_list = ['男', '女'] 79 | queryset = Student.objects.all() 80 | for sex_number in range(2): 81 | count_value = 0 82 | for item in queryset: 83 | if item.sex == sex_number: 84 | count_value += 1 85 | # 如果StarInfo表中该星座行已经创建,说明该星座value变了,需要更新(修改)value数据 86 | if SexInfo.objects.filter(name=sex_list[sex_number]).exists(): 87 | instance = SexInfo.objects.get(name=sex_list[sex_number]) 88 | instance.value = count_value 89 | instance.save() 90 | else: 91 | SexInfo.objects.create(name=sex_list[sex_number], value=count_value) 92 | print("性别数据已经更新完毕!") 93 | return None 94 | 95 | # 更新地理数据 96 | def geo_update(self): 97 | queryset = Student.objects.all() 98 | for item in queryset: 99 | address = '' 100 | address = item.hometown 101 | url = 'https://restapi.amap.com/v3/geocode/geo?address=' + str(address) 102 | params = { 103 | 'key': '2fa9633ba7fee11266e2812b7e89595d' 104 | } 105 | response = requests.get(url=url, params=params) 106 | r = response.json() 107 | location_data = '[' + r["geocodes"][0]['location'] + ']' 108 | location = eval(location_data) 109 | coords_list = [] 110 | aust = [117.011140, 32.641538] 111 | coords_list.append(location) 112 | coords_list.append(aust) 113 | # 判断是省外的同学 114 | # if item.hometown[:2]!='安徽' 115 | if item.hometown[:3] != '安徽省': 116 | # 如果实例存在则更新数据 117 | if GeoInfo.objects.filter(name=item.name).exists(): 118 | instance = GeoInfo.objects.get(name=item.name) 119 | instance.value = location 120 | instance.hometown = item.hometown 121 | instance.coords = coords_list 122 | instance.save() 123 | # 不存在则新建行,存储该数据。 124 | else: 125 | GeoInfo.objects.create(name=item.name, value=location, coords=coords_list) 126 | else: 127 | if AnhuiGeoInfo.objects.filter(name=item.name).exists(): 128 | instance = AnhuiGeoInfo.objects.get(name=item.name) 129 | instance.value = location 130 | instance.coords = coords_list 131 | instance.save() 132 | # 不存在则新建行,存储该数据。 133 | else: 134 | AnhuiGeoInfo.objects.create(name=item.name, value=location, coords=coords_list) 135 | print("地理数据已经更新完毕!") 136 | return None 137 | 138 | # 更新星座数据 139 | def province_update(self): 140 | # 查询学生的信息 141 | queryset = Student.objects.all() 142 | 143 | # 定义存储全国省份的列表 144 | province_list_2 = ['河北', '山西', '辽宁', '吉林', '江苏', '浙江', '安徽', '福建', '江西', '山东', '河南', '湖北', '湖南', '广东', '海南', 145 | '四川', '贵州', '云南', '陕西', '甘肃', '青海', '台湾', '广西', '西藏', '宁夏', '新疆', '北京', '天津', '上海', '重庆', 146 | '香港', '澳门'] 147 | province_list_3 = ['黑龙江', '内蒙古'] 148 | 149 | # 遍历两个字的省份 150 | for province_item in province_list_2: 151 | # 初始化此省份学生个数为0 152 | count_value = 0 153 | # 遍历学生数据 154 | for stu_item in queryset: 155 | # 如果改省份的名字等于学生家乡的前两个字,则记录改值 156 | if province_item == stu_item.hometown[0:2]: 157 | # 该省份学生数 +1 158 | count_value += 1 159 | # 如果此省份信息已经在数据表中记录,则更新当前数据 160 | if ProvinceInfo.objects.filter(name=stu_item.hometown[0:2]).exists(): 161 | instance = ProvinceInfo.objects.get(name=stu_item.hometown[0:2]) 162 | # print(count_value) 163 | instance.value = count_value 164 | instance.save() 165 | # 如果此省份信息没有在数据表中记录,则创建该表 166 | else: 167 | ProvinceInfo.objects.create(name=stu_item.hometown[0:2], value=count_value) 168 | 169 | # 同理 遍历三个字的所有省份数据,将列表和切片更改写就好了 170 | for province_item in province_list_3: 171 | # 初始化此省份学生个数为0 172 | count_value = 0 173 | # 遍历学生数据 174 | for stu_item in queryset: 175 | # 如果改省份的名字等于学生家乡的前两个字,则记录改值 176 | if province_item == stu_item.hometown[0:3]: 177 | # 该省份学生数 +1 178 | count_value += 1 179 | # 如果此省份信息已经在数据表中记录,则更新当前数据 180 | if ProvinceInfo.objects.filter(name=stu_item.hometown[0:3]).exists(): 181 | instance = ProvinceInfo.objects.get(name=stu_item.hometown[0:3]) 182 | # print(count_value) 183 | instance.value = count_value 184 | instance.save() 185 | # 如果此省份信息没有在数据表中记录,则创建该表 186 | else: 187 | ProvinceInfo.objects.create(name=stu_item.hometown[0:3], value=count_value) 188 | print("省份数据已经更新完毕!") 189 | return None 190 | 191 | 192 | # 此方法用作更新数据,当学生信息表中的数据有变化时,更新相应的数据分析的数据。 193 | def update(request): 194 | data_instance = data_compute() 195 | data_instance.star_update() 196 | data_instance.sex_update() 197 | data_instance.geo_update() 198 | data_instance.province_update() 199 | return HttpResponse('

数据更新成功!

') 200 | 201 | 202 | # 星座信息序列化器 203 | class StarInfoViewSet(ModelViewSet): 204 | queryset = StarInfo.objects.all() 205 | serializer_class = StarInfoSerializer 206 | 207 | 208 | class SexInfoViewSet(ModelViewSet): 209 | queryset = SexInfo.objects.all() 210 | serializer_class = SexInfoSerializer 211 | 212 | 213 | class Geo1ViewSet(ModelViewSet): 214 | queryset = GeoInfo.objects.all() 215 | serializer_class = Geo1Serializer 216 | 217 | 218 | class Geo2ViewSet(ModelViewSet): 219 | queryset = GeoInfo.objects.all() 220 | serializer_class = Geo2Serializer 221 | 222 | 223 | class Geo3ViewSet(ModelViewSet): 224 | queryset = AnhuiGeoInfo.objects.all() 225 | serializer_class = Geo3Serializer 226 | 227 | 228 | class Geo4ViewSet(ModelViewSet): 229 | queryset = AnhuiGeoInfo.objects.all() 230 | serializer_class = Geo4Serializer 231 | 232 | 233 | class ProvinceInfoViewSet(ModelViewSet): 234 | queryset = ProvinceInfo.objects.all() 235 | serializer_class = ProvinceInfoSerializer 236 | -------------------------------------------------------------------------------- /frontend/public/static/map/province/tianjin.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"120101","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BhB`R@DA@CD@DCFCHBLDF@DABKFIJGQG@COEQM@@OASB"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.195907,39.118327],"name":"和平区","childNum":1}},{"id":"120102","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@XFFIE@BGGA@KVBN_]CCCLg†MGE@CD@AGB@AEGMEACB@BA@BFWFACKA@DA@@DA@C@CCCDGIAKMBWLGFERWT]bADCNE@DDIDEFBHTHBD@DLMPJj@ARX@"],"encodeOffsets":[[120075,40099]]},"properties":{"cp":[117.226568,39.122125],"name":"河东区","childNum":1}},{"id":"120103","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@TAPB@@RNPF@DRHPSXSFQHEXK‚E@CMIFUQA@DC@CCA@CDE@CEE@FOc@@D{@ch]IGFCFE`A\\"],"encodeOffsets":[[119992,40041]]},"properties":{"cp":[117.217536,39.101897],"name":"河西区","childNum":1}},{"id":"120104","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@C@@DCBQ@AcAmBOFaDEHEgKID]ZQTINCJEdkhHDRNCB@FD@BAFDFHB@JIDANFDECCZCBA\\B@Hd@LB@CAU"],"encodeOffsets":[[120007,40074]]},"properties":{"cp":[117.164143,39.120474],"name":"南开区","childNum":1}},{"id":"120105","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@FBBAJBFDJK\\NFEFBLKBBBATP`]QOLB@AHBBEJ@DDDE@QW@BQi@OIKN@CACQECG@CFCJCCCMCGAEDCFBT@DSTQN@BFDBDCJBJAHKAIFDDXDAB"],"encodeOffsets":[[119993,40130]]},"properties":{"cp":[117.201569,39.156632],"name":"河北区","childNum":1}},{"id":"120106","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JELBBGAIDIACEC@ARMTSKAc@@G[AABYDDDCFMECBIJC@CPHZ@LHNFFNHBCDAZBB@DEJE"],"encodeOffsets":[[119980,40125]]},"properties":{"cp":[117.163301,39.175066],"name":"红桥区","childNum":1}},{"id":"120110","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CK@QOCEAEK@KAAKAKEoRECIYK{\\Af@BMb@@WAGBC@GV@KYBUkB@@OD@AEUE@IQDAGSJEDFD@CIDAAKDE@KECOKKEABMVMRGBSGE@KDCDADDN@FCHCBGAIGUKUEcB]JULINIZGD[AU@QDMDGFQR_NODiBcDBLHJDCDDF@@CB@@CLBBDXEAEB@@ADAFBHNBFA@BHC@@DHF…NKhDD^DM`UA@LHBAHF@EJWE@RCFCCI@AFGA@BKARP_^ZXZL\\JfHNHEdEAAFBBQCAFPHRGtMBEB@NB^Cb@lECFHDPD@DNBJCFE@CEG@GTCPHBF`@JFBCHJJKRCP@JGTIAQGIDAPAVH@GCEKEEBAAVEBDADPFBBCFBBHE@WHClQPCFBTARE"],"encodeOffsets":[[120391,40118]]},"properties":{"cp":[117.313967,39.087764],"name":"东丽区","childNum":1}},{"id":"120111","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CGECABC@@EDAQMGClgD]DM^c^YHCF@‚VrwJBBINBHAFAHBDAN@LDDGCCA@AC@AACBAAEFKA@KDCCJCJDFGF@DCBGDQJERFHGMCLEAAGAFGMMAWE@BHQLKIBAJECCCAAGQW[DAAjS@AIYXKGGƒT@NBFEBABOJBDMFADGG@BGH@@AACFKGCG@FMWMDABCBAACLCIGCAE@[P¥\\]N¯˜MNORU^Ž]XKF`_XIIAIkDDZF@@FMDJLmTSDaHgDBJE@@DOBDH[HFJCBCGCBIMKH[L@AAAADUBACECGHWKCHTHBHaJDLF@JNF@FNLAH\\FABPD@EF@@HELCHVF@GXBB@DJBI\\PB@BN@BHK@GBAJ\\F@AACLABBAB@DFHB@FFJCDL@BA@@DF@JEBKHB@CjHBENDH@HSFBDKEAFG\\H@DE@AF@HHBANH@BQ@CBGNFT@`LFABIN@ALDBCFRHFB`D`ANANCG[DM"],"encodeOffsets":[[119940,40092]]},"properties":{"cp":[117.012247,39.139446],"name":"西青区","childNum":1}},{"id":"120112","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ZAZEVKXSPGVEnDHCJYJMVKNEPCdAZHRJJHHBDADG@ECMBCDCLCF@THHANQPWD@DBXRJ@HAJERSJAJBDCEOCAKYBQCA@GBCDSGAGBIHSNA@KCQMCF]IN‡aCuOSGU{zm_yENH@HDELBD@BG@AHH@CHEBCNIAAPABEFMAS@„HHWLJZ@BiTBB\\CRXBHDBDDIFABLJRKAGF@BXNNEHHBBBKFNDGHQEIFCRAHCDE@EHICIDDDLCB@ELBFABBD@BBDB@DDCHKCM@CBGAEBGBMAAJIAMP|@@Cd@EPF@DFF@DCB@DDD@@CRBEVNJ@D"],"encodeOffsets":[[120108,40016]]},"properties":{"cp":[117.382549,38.989577],"name":"津南区","childNum":1}},{"id":"120113","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@PQFFJICABACCDAKGJGLHRMVMMERKHH`WBFFCRFJHHIBOK_MC@QLCDIBAMA@COCGCDEkFa@]DMAA@AFsNQHOGBERDAABEFBFcMGeG[IQGGCmgABAAKLEAEF[MILECKA@BA@CABAWCCCIFEFYACBADICIIGM@KMDgDO@UCWIDECABKM@AJEB_KS@MEAH@DARG@BMGA@GBEF@@C[GEHFBCLEAGTG@MCAFgGA@@DGAALIFE@@CB@@ACKIDIGQJ@DHD@@GAAH@FDPbB@BDEJ@BBAFBNBHDBCDBDHBEJFBBDCFANA@AFTFFARPBNLABARA@DD@BB@HFA@PXBBLDACRKEAJF@GPD@AN@BjHCGZFJUN@BA^F@FIAAFNDCF@B\\LONADtJTAFBDCPBDGPETBADNDFFDFCD@LHBBKJFALIA@DB@@BNFBGHBBEN@@DHD@FFBDAH@AHBBCLDBF@@HFBBGJ@BBAFfLLABCH@ADLFJENAHKLAFBDEH@AHBDJB@DB@B@AADEFCLBNCDMDER@BKGA@ADEZDBELH"],"encodeOffsets":[[120140,40274]]},"properties":{"cp":[117.13482,39.225555],"name":"北辰区","childNum":1}},{"id":"120114","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DKEC^QZS^QwVMAAB@CCI@@CB@H@JCBCFEDBCFF@D@H@FALIXMBIECM@ADE@OABEPA@CBCD@HEDIGEC@AC@KJ@DCH@@DFADEDAFBFALGBMFABKGAAA@CAALEJOFAFIFEB@JKDEJBDCCAEAFI@IDIDINECABGBQBCFC@AOKIHED@EKG@JDFOH@EIEDEFOC@BCEACAACAEI@AAHUXC@GD@AMDED@BEF@BBHAKADID@BGCIBEIIGCAFOAGAEF@BHBALQ@CFCNMDKAEDCFBBC@@CIAACBGG@CFEAKBGLMBIFKEBCG@ADKBeKBEAAI@AHEA@GE@CADKAABGG@CBEA@EGC@CM@AFGAAHME@AA@@CJBBKIEALGA@KDCCEEEMCBCSAOFCHOACDEASBsIBCPM[K@ADEMCBEJB@E]EABM@IVYEDHiG@ABMC@HOE@BILFDQCBAKWA@OEB@GAAC@@CQBABKBAMQOEBSEBEB@BMDEACEAFIGAACDCCAAGAMBEAAI@CF@AaACO@EBGHB@@GC@CRICE@CBAAAKBBD@B[EBIHAL@AGM@@AOAJ[IA@CAAHWM@AHJ@G^G@AF@DA@@FEBBFcJqAEDECFFABBRCHBFEDDNAHA@@`@@CHG@AT`D@AH@@PBBCJDBFABGB@@BBAB@BIFBBDJ@@FE@DHKD@JA@@FGCCDE@AZFDM\\JBCZCRKA@FGA@JHB@FBBXFBCFB@BB@CRJ@DJ@HCTF@ADB@AHEAIFKACH@CA@CLA@FBAFB@@DH@CFE@ADIEKA@FAABIB@BCG@@CC@BAOMCJGG[C@BABG\\AAAD@FL@@DJBADHB@BA@ABOCCDC@@BC@ADB@ADA@AFL@@A\\D@FFBBEB@CLB@ELB@@BAB@DBB@DEA@DD@AFCACDBHJDALF@AFFBBCPB@DB@ABBBBBD@@DDBFB@DHBCHDBLEJNMF@DKCIFCFQCBAA@@AEBAA@@EA@DOICDGD@BB@ALDA@BYLKA@BBGGA@AMHEABCC@GNLE@NC@@DAAAFEAAJKBBBF@CB@BF@AFH@@BN@ADZF@DD@@DF@DCFBEBF@@JB@EDCPA@@FI@@BF@@DDCCTH@C@TD@BB@G^FAGPECBGG@@BSAEDALG@AJA@AHC@ABC@@FEAAHB@@DB@BDF@AHHFA@DBABD@D@CBBBCBXH@DB@AFH@EHCACFCBCFA@CFDACL@BB@AFB@BCDBBA@BBBBCFBADE@B@@BCBBBD@ABE@ABAA@BLD@BHDBEGA@AD@CABEL@CJHBEHDBEJBBPDFCBEJDDBH@@FADHBMNIHFDEFFD@AJFADBBBAF@D@AHDBRDBD@RCBBJV@@BD@BDPBFEBBCDTHL@DAHBBCDBABTDCJJBGJNBAND@ADFBHE@DED@H@@@FH@X@BCBBBCB@DFZ@DMA@CFA@GMCADGAGBCNMAAIA@KXGCODOJMD@LJJC@C@KC@BCFAFDRDBAD@CD^F@DF@BFFA@FJB@DbEPEbElMTIZGAAFA@CJ@BE@@@FHA@EJA@CHBADBGPA@BG@AFBBVGHFL@BBABD@"],"encodeOffsets":[[119960,40574]]},"properties":{"cp":[117.057959,39.376925],"name":"武清区","childNum":1}},{"id":"120115","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@GBAAE@AFC@CFBNC@@HWDGVBBJ@BFBDDBFBADD@EPCFJF@FPGCE@ILH@FFCJGPL@BEDADARAHDBMFCJCJ@JEJFBDBCDIACFILA@EFEJEBIPKFBB@DBBHBALEBANKHEBEACBCFEB@CG@CDI@@LBDD@HFCJGFC@AD@DOBAFPBF@BCN@FDAJWNKJEBG@C@E@DECAEFADIDG@ADJ@DDA@BBUNx]RYT]RFDCLJBADDBGDBDHBFJJ@TBBHB@@DH@AFKBCB@HE@@BEA@D@@ADBHC@@AA@@DCB@DB@@FJ@@FD@@HH@E\\F@ADB@ARBBBFED@BD@@BCA@HD@AJE@@ACAAHDB@BH@AHCB@EAAADGB@BE@BBK@FLEBDDADA@BDNB@DJCBBIR@DBBDBFALDX@DHL@DJFA@BH@HHKJAB@DC@GFOHED@BCBAZE@ADE@AFGACEEDA@@AGAAVJ@IVB@@DB@@DHGJB@JpFBCFBEPPBBCNFBGHBPC@EHBFFRDRA^GD@JCFDJGHBLGFECCBGHBBCFBDCFB@EFGD@@BF@@DPALEDCECDEDABED@HCHJH@FDDEFDHENCLBDDDA@ERABEN@JEDDBACEJ@AINMRBJGAIDCZEJCLAFRTJHAHJHFD@@AEKBAFBRJGF@BPAFBHEDBFHBAFO@@NFH@BEFGHAD@BFBBJID@BFDBDEB@J@AGDCL@FBNIBBFJD@HKDCNDF@DAFGFCdE@A@AICBCJC@C@AGAEFC@@MIBAABC@CKA@CBANACAGC@ARBJG@GLGHCX@LENBNE@EDAFBHHD@DCDIIMLCBGN@@AIEBANEGKLEJDDAAGIKHKCIBECIECSF@GBKGCIDC@FKAAGCBOC@OB@MKGC@CHCAAEFUB@HDLPJDBCAIFGDARDHGBC@EIKDGB@N@PHJHBLHBNARQXGFG@GIGK@IDEFEAAC@EHILCP@JCDGCEOFCBGABCKCBSEEK@ADIGO@AEOCEDDBqNAAH]MKiIAW@@CA@GA@DIMA@CGAAD_EEH@FIA@HIAAHUEDOHAFIOSKGSEcDAEI@@CBCOEC@CDCFEBKEFIMEGEA@@BIA@ERFBDQCABADQDCCAHMJBDEMEADGAUCCC@CDA@CCCICGO@BDJG@CADGK@CCGFICCBKEEDGBCAAEKDAABGFE@ACABCAAeA@HM@GBYD@BE@@NABGB@CCAW@@ACAEF_BYECII@CG"],"encodeOffsets":[[120145,40295]]},"properties":{"cp":[117.308094,39.716965],"name":"宝坻区","childNum":1}},{"id":"120116","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@LCFBLCBDJC@CEIFHTCBJRF@FXPC@@lAAVLZU@@HADBH@Xa@ANe@[BL|J\\FBpQLFLBBB@LFLFBPD@RDLpMpGBPNREHE@@dVF@BJB@BD@@DFDLBDGHGDA^c\\@@cFDŠ@@jEBJZFLhrePFBEJGAENE@IVC@@RBLV@DPT@zJLHPFVDNECC@SACjQJBJCACIDMQhQD@tŽCD]LBHDBH@GLHNB@DQHBAFDHE@@DEBDFFAD@@BF@BBAB@BNFBEHCXDT@JGAGVEBEDCDB@BF@@DRC@BZ@PAP@BCFAJ@@B@BTC@DB@JEAAB@FB@ACAB@@CC@BCHOF@BADAAADCHBH@HECEB@BCHBDBBCFDBAACBAD@BBPGJF@@ABDB@BD@ABBDDAFCBC@CB@CCAKNECG@EF@@EzQBiAC@Ey@BUI@±]GaQaý¥Y_YeK]EaDqPmHcD{DK˜QBMMaKEUC_BOASY_YAYD—XSIaa¹JgCeOQ[@‘RUbK¶MPGJMA¯CUSQÓgOKMWEa³OqIGFG@EBEACIGCFK]EE@@DFD@B@BG@BHCFC@@EEAIHEACBC@BFCBQCaDFKACEBECADE@SSKMIKHQKHEJ@[UGCoO@d[CFSMIAIE@AH[A@DOA@AQKOEEBARGNI@G@BSgE@AOACJSKMVC@IXF@hJAFmKCHB@PVVFAHHB@JC@CH@BABD@ABMFC@@BSB@BAAAHG@JL@BBBWABHHB@N@BMBMAEEESMA@EA@@CCE@FC@AEQ@@GCAA@AJC@BEK@AAABSGA@@FEA@BCBC@@EC@@DK@LHBD@HCDBFCBABB@F@@FB@@DFJ@HB@BLADK@HBDBCBG@@DH@@F@DCJIB@JK@AJFBCLBHH@DCBJFF@PATBHB@ABDTbB@DaCAAE@@CAACAOF@HADE@@BICAFBHEBhTBPDBJCFCªvEFeVTROJVT`O„€FH®_\\OF@DBJHKDBDABADCB¶ˆn`|yHVPTŽvbDMˆ^JDERNLDB@TMJGHAHBCTAD@HDBARLZDBFPCDIAGBUVOFGB"],"encodeOffsets":[[120348,39943]]},"properties":{"cp":[117.654173,39.032846],"name":"滨海新区","childNum":1}},{"id":"120117","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ABCJKD@RNDL`APGJIGQEEDAE_XGGQLNFUNQNKGIHLHCBDDABDBIJEEORFFAFDJAHC@CJLBDHJ@DJZF`AFEDB@BX@DB@DHABA@MF@@AZCHAN@@GfBBBADDB@BEFAHBBLCBFDBHAFCLFDAJDHEDDL@CHDBH@CI@AHPJDDD@DCB@DDDVDHBBCNFCFIAGNDBCDCRABDBCREAQ‚@FJB@AB@HFNFEJLFFADEDCD@PFAD@DJ@BFdCTFLHPTEJGBCPVFBGJB@GJB@EFG`FBCHB@DNBCJB@@HDB@@BXjJNLGZ@DBBrMACFANDBFP@JHBCL@FFATLDADHBDAPEAC@EBIFIJGNJJ@JBJJHJHFSZA@BND@@LVB@BJ@AFDBBDEDILjTABlEHHTBvWVAPDHCDFL@LHHB`MFALDNC^M^GJIEKABEGACC@IMA@AOB@EACIGAAEBAECCBDAAAAADAAEFCBDB@ACB@AAAABEBAD@AG@ADFAEB@A@GKSCCgG@AEJA@AFO@ECCQEEEOBGYG@B—qGBKXBFKCYJKOIKNEASCeA_ECSBGFENEF@HDZ@FCBE`TEFB@EFHFFEECBCFDFADBDEUWCOGBAIECLG@CEIFA@CF@CGBEGACRA@GMHKG@CAAG^KDCsC@gRNRJCBDIDIAiRBD@TDDMFUCOEKGyIS@COU@AK@QD@JUF@FMHBFIEAfOgqEKIYFA@i‰@EC@d[@]dCBGHCHKAEC@CC@@AIA@AUE@cF@FGMQAOgF‰VSBEAODkRGD@XGFAADEAAOEBCACUFBBFALFDF@HUGOBCBHJBRSJIHO@QDILGIADIE_@AEOGSD@HFH@DEFID"],"encodeOffsets":[[120221,40183]]},"properties":{"cp":[117.82828,39.328886],"name":"宁河区","childNum":1}},{"id":"120118","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AHC@@FCA@DHB@JS@@DA@@H]BCTKfG@BHK@@FEAADJD@RJhNNI@@FQBBDCBQA@BBLMIBNFJADHHEBuK@IA@AKU@UDDH—KI@HAGAAC]@CDCA@MSAHPGBOEMEIA@EC@@DA@MBAASB@BCB@TE@@BBBBDAHCBDFABFNGBBFKBBFC@BDB@FPC@BPCPMACEoBE@AAC@@DcB_D@ECB@A@BA@B@@DC@@CA@@IE@AAG@BDK@EBABQA@JE@@HC@ABA@@BB@ADOA@DIAACA@NxQB@FIBHXHABFKBFLIDLPDTF@DNC@CAGB@FA@BJDXmBAœ[@@ˆD@@NL@BHB@H\\BTD@HRB@JF@FL@FHDNDABJDCDTD@DTA@@LF@BB@XGBADE@@B@B@DJXJ@XEDFHAFHCBBDBDJBBHTCAIGBAAGBEA@EC@BCB@@BBAC@@AB@@CD@@DB@@DJ@DDF@DAF@@CLABBF@@AB@BBJ@@IBBDBB@ACJBJDR@@HD@@GfBAFXBCLH@GTPFjKAGSGDGXLHGFDBDVABCBB@B\\KLGJNDADHDAEI\\GCGPA@CF@AIhCbGTCnSIKNC@EE@CYlCBJJJ`W~W\\M^W€V]^_°—VIEGƒ_PUSPISQfUFE©uEDIDCAAOgSFAAGBEJD@AF@BC@GPEDBBB@DF@BBbD@CaACSBAA@AGBS@OEEAICDG@AGDKEABIL@@IJADI@C@EG@@CH@DACAGAL@@OA@@GEI@CA@@EE@A@BADAAEDC@GACOKB@BMEB@ESEAABECAWBAECBBCC@CIBCS@@IWD"],"encodeOffsets":[[119909,39513]]},"properties":{"cp":[116.925304,38.935671],"name":"静海区","childNum":1}},{"id":"120119","type":"Feature","geometry":{"type":"Polygon","coordinates":[],"encodeOffsets":[]},"properties":{"cp":[117.407449,40.045342],"name":"蓟州区","childNum":0}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/map/province/shanghai.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"310101","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AHV@BDCPEPLENFHCJHFBNCAGBGXWFIBGCGMUKKCCcGCDGBALCPIAAPGR"],"encodeOffsets":[[124373,31970]]},"properties":{"cp":[121.490317,31.222771],"name":"黄浦区","childNum":1}},{"id":"310104","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@CEAMMAA@C@AFA@@BC@ABC@@BD@@BH@@BB@EHDDCBECADGEEAEBFNET]CMRELQjOEGRFBAHDBAHH@@B@BDA`H@F@BC@AB@FD@DD@@@CH@DDAFDD^LEPF@DFTDPHHQBOJBDOBKHADCOGCEAE@EFOBMAEUW@GBEHILMBE@KGM"],"encodeOffsets":[[124381,31859]]},"properties":{"cp":[121.43752,31.179973],"name":"徐汇区","childNum":1}},{"id":"310105","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@AACE@FO]KCCBECCG@@D@@CCmBSAcKG@EBAEGC@DC@QE@CA@@BEBMTNFAFDBA`D@BDA@AA@FFBBLD@@@IBDBABDB@@DBADB@CHA@@DC@C@@@BBABFDH@AHD@ACDA@FD@BCA@@CJCNWJ@BCHAFEF@XCV@DFH@VFBBCFD@HEFFFBB@@IDAJFBABIFK"],"encodeOffsets":[[124354,31964]]},"properties":{"cp":[121.4222,31.218123],"name":"长宁区","childNum":1}},{"id":"310106","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AB@PCJBNG@ABBDBB@DNBAJJ@@FB@@H@@@DF@ENB@BDD@BAT@BENDFDPB@AF@A]G@BOCKCEBA@G@KBEDCLMVQ@EACDECABCDKECGDMEKFFODOACU@BGOGUCELAJABIECBBNFHJBTLHB@BADDD@FB@@DC@BHOVUJCFIG"],"encodeOffsets":[[124340,32022]]},"properties":{"cp":[121.448224,31.229003],"name":"静安区","childNum":1}},{"id":"310107","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DB@DHBBCDBB@A@DF@@DFDDHGBDDALZCB@@EBA@ACQ@@DGBEFBB@FD@J@BFMBCCCDID@AODAEIDBDEBABBB@DC@AF@@AFGACBADBB@@NFADD@@BB@B@BAB@@@BBDA@HBB@AJ@@AD@@BB@AFHBDCJFHBGQAAJA@ALCBBF@@AB@@BD@@@JABDABD@@BHBBBNACEJA@ADAAA@B@ADAAAJBIQB@FCBBD@AGJ@@EJA@EHADDAB@BFANNDEVIPUAGD@@CA@@ECCBC@AGASKIAEGACA@EAEEA@EFC@DEAAUEG@CEU@WDE@EFGBADI@MV"],"encodeOffsets":[[124267,31987]]},"properties":{"cp":[121.392499,31.241701],"name":"普陀区","childNum":1}},{"id":"310109","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@OHWVFBABIKK@MJCJGBKV[C@@I[AOEODCACCCLADDBCFBD@FURQT@J@F@HABDFDLAPH@BTVCLBBE"],"encodeOffsets":[[124402,32064]]},"properties":{"cp":[121.491832,31.26097],"name":"虹口区","childNum":1}},{"id":"310110","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@JD@U\\ALIHID@NLLAJABUEGX@PVA@ZDDADGFX`ZKDHFAFHpSNGDCDGDM@cBGL[BKAGEGMOcY[GWA"],"encodeOffsets":[[124433,31997]]},"properties":{"cp":[121.522797,31.270755],"name":"杨浦区","childNum":1}},{"id":"310112","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@EBAD@@A@E_GCB@A@AG@BGCABGEAHQPFRiFKNQ^DFSEMFAFBHFBCFDDACCFGA@@AG@@AC@@AD@BAD@@AB@BED@B@F@B@FBBNDFLCDBCBFB@DFG@CBBABDB@CDBAFCB@DABD@B@DB@BD@@B@BB@B@@FJ@DKLFB@DMDBBABBCFDB@@HB@BBABBDCBGNBDAB@@BPDBAF@@AB@@AB@@CDB@BF@DGB@@CD@FDADF@BADDDCBBDCAAC@BCFEAAB@FECABC@ADBBEB@@EGCABAB@@CAA@CAIABAAA@@ECDGD@BCBBD@BBHBFALABAFBD@@CGA@BC@BCEAA@A@@AEA@@AAA@G@DCG@CCBAAA@ADBDAEAC@ACE@BCC@BG@ACBBAEAAA@B@CECDEAEBAB@BDB@DBD@BBD@FDBGBBFCAABCBDBCEC@UBACA@AAA@ABB@CCCE@AA@ADCD@@BF@@FB@@BDB@CDB@ED@DFB@ABB@HDAADCBE@CCACC@CACIABA@@@BD@@AD@DICABCECFA@AMEO@@CC@ABA@@ABA@GCACBADCDA@@BAAAB@BICADE@@BEAABC@GHC@E@@FD@@BA@CFC@@BC@AASEKG@ACAIZBFGDYCIAKGKAU@OCGAKIMIMCOEeC‘WOBQHI@C@CBB\\HBPTBHJHABECM@ADBB@J@F@D@B@FBDAD@NBBBN@T@DBBADFCFDDGTDJFAFNB@DB@EFFBADD@@DFDDCDBADERCDAB@DELGAADMCEPHB@AB@@BHF@@GNQV@DEJCDC@ADD@@BCFABADA@@FCB@DCD@DABA@EJEF@BEJCLGJABCHAB@BABCFCB@BED@BA@@BABADGFAAA@@CAAKGCAKAUTC@CDDBADIHDFCF@@CDBDCHDBAHGDBDCDABCAABAFKACBDDABBF@@@BHBBDDBC@BDFFFBBDD@@AH@HB@EFC@ABC@FFCFBB@LCFBBAEGFEDABGJMJCL@XGNFH@PDBB@FHDBAAA@@D@D@@CB@DGA@BCCA@@CABACAJA@@C@AKEA@EBBB@ACC@B_CABEMENSFA@AB@@DRFD@@CHDBFFAH@dLTBjA"],"encodeOffsets":[[124327,31940]]},"properties":{"cp":[121.375972,31.111658],"name":"闵行区","childNum":1}},{"id":"310113","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@JE@@BOAECMCAFS@ABC@ACA@FME@@C@@@GA@@EI@BIMA@CCA@CBAH@AMDI@OBACEEB@ABACCGB@FIB@FI@BHC@AAEDA@JRIABBCB@B@ABBCB@BIBDFMBAAGA@AC@BAACIB@@C@@AA@@BE@AAKD@BIBBBHRC@ICCCCDGABEA@@AC@@BI@@BAA@GCBAAA@ABBBCDAAEJFDB@P\\J@@FB@@DGA@FD@@DAAADCF@@ABBBCDDB@DF@CLCAEFEB@DG@@HD@DB@BB@@FHD@BADA@CFCFABDB@BED@BCDEFFBABB@ADG@GNCBFHAFA@@DCAIB@DB@@FBBEF^JBAH@AFD@A@@DA@@BFDABD@@JB@@BA@AD@DB@@FCJ@FA@C@ABAAABENDB@BCDCFG@ADDBEDDDABA@ADB@ADF@BD@BEACD@BCBJF@BABA@BBCFE@ABCLABBBAFEB@A@BCDEBADD@CBBBBAADBBD@B@BBADFADDDA@ED@ACB@FF@DFBBCB@@AC@@GF@B@AFD@@DB@@AD@@BD@\\PfK^I|]BAEGBE\\Q`W|i\\UdSXUBD@DFAEG\\UQQQY@QJONIVIEGEBCGYLW_HEBCCC@YUBAFKAUD"],"encodeOffsets":[[124384,32068]]},"properties":{"cp":[121.489934,31.398896],"name":"宝山区","childNum":1}},{"id":"310114","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@A@A@@AC@BCME@@AABCDAHBBE@@BED@@CAABAFAACJCBFPC@BJCDCDDNAAEI@C@@EAAFEHA@CR@BDB@FA@@DAKYCBACGHCCCE@@CEB@A@CAADGA@CCAADGB@DB@ADC@@ECBBDC@BGG@CCIC@EAAOCG@OEUHK@IDINAHCBEFFHABEAKDA@EAED@EAD@BED@FGAG@@BC@@AC@@DA@@CCBEA@DGAKFOB@CG@@BAA@CGCBAEA@CA@@DEA@FCFB@ABAAABAC@AAACFGEBCABCCABCCABCAB@@CC@ADGDEEC@EDCA@BA@BDA@ACEFECABC@@BB@BDC@AJIJCAADC@CGEB@@AB@BDF@JDD@DHBABD@B@@BCHE@@BC@@DCA@DC@@DDBADA@EDFBIPCFIIBCMAE@AJ@B@FAB@DAJDB@DDB@FD@@BCBBBB@@DABAB@DCBBBAHBB@FMCKB@HF@EHIACBE@BFCBBLAH@DD@@CD@D@BFNBCDGBAFTHBEBB@DB@@AJD@ANFABBBD@ABD@@ANDBDCD@BABA@ABLDCFDBF@ABC@ABDB@BFDADJDDCCDBDCDAAABBB@BC@ABA@ABC@@HA@C@@DJ@@DFB@BD@HB@AD@ABBDFA@HA@@CA@BDABOBMFAFB@ADBDAB\\LDAHBBADBHAPFJFAFBFFD@BJHRD@FHFNHDACCLADBH@DDFABHCB@BHJF@AJ@@FAFDB@AEFE@CBIHB@AC@@AA@DEHD@BD@ADB@BDB@AKD@@DBA@@@AD@DBBDBBDBD@@FDDBA@CDAHDBBHDADB@FA@BD@DCD@BFFCJD@DA@FBBDFADC@A@BFABEAABADKBAF@DEAAB@BA@AIEDA@ADCFB@AACE@BCA@BCB@BACCFCCABCH@DEDC@ACAFMBABBBAD@B@@EDI@EA@@CBCB@@AA@@IC@BAEC@AB@@CB@C@BEG@AB]IFEAA@EA@@CJADB@CB@BEEGDAHMH@BCA@BAEAFEDC@AFC@ACABALQGC@ECCE@@GH@@CFAFEDBDKE@@CCADCAABA@@DEBCBB@CC@@EHB@CA@@EI@GMEMICFIBBBABAAA"],"encodeOffsets":[[124249,32046]]},"properties":{"cp":[121.250333,31.383524],"name":"嘉定区","childNum":1}},{"id":"310115","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@bM²WLCļÑNI^_È€sJQ¶±`e`Z¡LƒD‡CsEWOWs@GBI\\wsYg|QNUBģFq„AZHZB@@JHBAJFRA@BB@HABB@@J@HBDBLAJC@@BD@ABA@B@AD@FB@@BA@@BA@G@@FC@AB@DA@ABCAC@@DEA@DD@BDEF@FQJE@CAGJA@ABCAEDBDGHADWR_TYJI@G@SD@AA@@AA@IDGB@A@BQBmAA@CBOAGFELC@AAaDACS@C@@AIAABKA@BEBFDADDBCJC@@BC@@A@@ABJBBD@DDDDB@DAFCDBBGCA@BAA@CEC@@FCA@DCA@AA@@EE@@AC@CD@BBBF@DD@DAA@BBB@BDBAB@VFDADACADBBEDAAAHECC@AAC@CAA@ACA@ABBFCFFD@D@ABBFBABDA@BAHD@ADF@BDD@FBCBCA@BBBABDDH@CDH@B@BB@@FB@BB@B@FBADD@@AHB@DC@EAABKBEBGAAAC@AAADC@CHFD@@BBABJBDBB@DB@@BABAHD@FA@AFCA@BADDBEFA@BBEFADD@BBCDAACDCCABE@BCECC@@DA@CHE@@ACA@DA@@BA@@BE@ABOC@AA@CBMAAHCDAAAB@AGA@@CADEAAABCACNA@KECLC@E@@EA@A@@A@AC@@AAAA@A@C@BA@CDABEAAADCABAAA@DEH@CEADACAKDHN@LAFKNGJAF@D@DBFNLHLANEP@FBFJJJDdHDDLLNVDHAHEJWXAF@FJFHDtDXHhZNPFHBHALK\\AH@dCNCHCDMHoTUJMJIP@RRZRR"],["@@PDNAvOFGBKCeEQGEI@IBMNY\\GJELATBJ"],["@@HRHJNBX@XCRGfEFGBM@eYuGIgCIAK@KDMPIREVCXARBP"]],"encodeOffsets":[[[124438,32149]],[[124808,31991]],[[124870,31965]]]},"properties":{"cp":[121.567706,31.245944],"name":"浦东新区","childNum":3}},{"id":"310116","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@DBBAGCBD"],["@@HADA@AGCKHBBF@"],["@@FACAAD"],["@@DB@EB@@CB@@GEQ@IEKAM@ATE@EHADF@GDCFFPD^BBED@@BD@@DPBB@@CDB@BLC@ADB@BF@@CF@@DB@BDCDA@@DCACBC@AB@HDBRTHGBCHBDB@AF@B@NACQ@@@AC@@CC@CIEE@CFCFHDBHABDN@BED@BDNA@HAF@FCBADDLD@DAAC@AB@@ANC@ANC@TDBL@DGJC^BDBDBJ@^F\\VHGPB@CD@BAF@DKDBBCA@BAC@FK@E@BD@@BNABCF@@AFB@AD@BADB@GA@@AF@BCFBDKB@@BDBB@BEDBBDF@@CFB@HD@@F@@@HA@BBA@BDC@BJADBBLB@AA@@ED@DIHA@BB@BDDBBCBA@@@BF@@CB@ABFBBCFB@BD@FCF@DBBAD@BAD@BABBBAHDJ@ABDDABDBHCBDJIBOFE@IDKJAFCBAJELAAEBCBKAA@GD@AIBEAIDOK@@EDEAABA@A@BB@@@B@B@AAD@@ADA@EJ@@CB@H@BLDBFA@@B@@GEB@EB@@CB@DETAAADA@GH@BHLAPA@ABBD@JU@ABBFCB@‚£«ugW›OCOCgB‡DaAE`@HCBBFCBAJA@AFDFAFFD@FDFCFBBA@BBAFBDA@CDAAA@STCBWLAAABBBCBAACB@AABBBIFAPCHCFBBCB@HA@CAABGPIBO@ICCEDMGAILADACCBCA@CECEAKCADCBADAAKAEC@HEBCAEDQBACEAAB@BGCYDEJCB@BBFN@B@@JDbHRJL@D@FA@@CCB@DABBDEFACSDA@AAA@DDBLFHAB@BABCAIDADABCEKCABC@CDABBBC@@B@BA@BBcO[@MGDCC@DK_KFMGBCFGADEA@AGCA@@DAD@AFB@BCB@DGOCCLKR]JADEAMMABBCA@CB@BABCAACB@CEAB@CAAGBDFGFHFGBBDFHF@BDB@ABBFDADFF@DHD@DFFADDGDDDADDABDA@DDCDFFBDEBFFDCDBCBDDEBBDB@@@CDCDI@GB@BBFAB]DAHCDDH@DDBHB@DHABDB@@FG@CABJBl@FEFCFBB@LB@J@@GPDA@DD@AD@D@@CCA@BCA@CB@A@@AF@BGFAADDB@ARF"]],"encodeOffsets":[[[124321,31442]],[[124337,31429]],[[124341,31419]],[[123933,31687]]]},"properties":{"cp":[121.330736,30.724697],"name":"金山区","childNum":4}},{"id":"310117","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@DLB@BFTHAFB@DABHFELFBBAH@DIHB@GB@@CB@BEDAB@LAPB@DFBADD@@BBBN@@DRB@BADALHABlH@@\\ABAFQPOLDBDBDCJBBJFA@FCJC@@DCAABDDBDKHB@CDBDEBCEINHDABFB@DDDD@F@@ABCAA@EB@@CH@B@BCBABD@DLBBCB@R@ADD@BAJ@BBBB@BA@@NG@AFELC@AB@@CBA@KJAAA@CAC@CLD@ABBBGJDBBDCFBBDCFDADBBDCABB@@BA@HHDBABFFDCBBDCB@BABB@AFEBBBED@FEDDBED@BALB@CD@DEHBBGDBBCB@BFB@@LC@@FJA@AJB@@B@@FB@@HH@@BJ@CJDDADDBB@B@BCJD@DB@AB@FC@@FC@@D@FDA@X\\ILF@CAA@ABBJ@DEXFPBI_CM@CF@NFF@BBB@BAADBLFBJABHKB@@L@BHXCAGBAF@@BB@@BCFBDDBD@BB^ENNEFEAEHCC@DBB@BB@AH@BFCD@B@ABDB@@FAF@ABXFnNHKB@BA@CDC@CDA@EB@BCBADE@AC@BCD@DCFI@CRUHM@@GE@AA@@BGAFONDBCHBFK@CBAHODICACDEC@CC@BCEAFEA@@CMABEIESCCHECEDBCAA@WAMAA@MBCAC@E@A@C@E@IAABCN@FDBAIGAGOSGAA[DAD@J@XIJ@PDDI@ODK@UD@BCAAGADSG@CAA@AABAAAA@@BECBC@IFCBC@CIG@A@AGDCABACCBAA@@@G@GCCB@AABC@ABC@ABCAE@EDC@@AEAADEABAA@@DE@@A@@ABADCAACA@@AGBCJC@@FB@@BMCBCAID@ACB@AAB@@G@@@EC@@GEA@DE@ACCAAFA@CA@AA@CLEAADE@@BB@@HCAABC@@BEA@BE@ADMB@AC@@A@FELD@ABB@ADCACLE@ABC@@DOAGH[U]EI@CACA]AIDCHK@CA@SMD@BMD@BA@@BBDCBC@CKBCDA@EBE@GMBACC@AFM@ACGBCAEGED@DFFDJD@@DD@@B@@DRMBA@E@@BCAGAADGHQSCA@GBAD@DADB@CB@DCACA@@CE@@DE@@ACA@BKD@ACA@DA@OA@CC@@AC@AF]AOCEECD@HCEGB@FSF@BBNFL@JFR@HA@@DA@@FCA"],"encodeOffsets":[[123933,31687]]},"properties":{"cp":[121.223543,31.03047],"name":"松江区","childNum":1}},{"id":"310118","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@GCIBA@@FADHD@BCDBJIBID@ACA@@AD@BAFDFEBDB@ACB@@ADBFCD@FFHCBCD@@DA@DBBADDBADDBAADHFDEBB@BBDBABBBAA@DE@EFB@CB@@DFBABHD@DBB@AH@@DPALEHB@CFBDA@DB@@CD@AAEAEEACD@CAACGA@A@@AEBACCDALBBEBADBBADCACHCBGCADGACDC@@DECEJGBCCADCD@VSLBDBLHBB@DB@BBFCDEBA@AB@@AFC@ADADEBA@ABADGBAHIDKJOmMWEBAE@EB@@CABAA@C@ED@ABGA@@AAA@CDDFGFBFEMM]FAAC@CAACDE@AA@@AE@ABBHWDAGK@@@LAAGIBEAAKBCABA@AAE@MEE@@DDNJ`OAWECFI@AA@BBB@DKE[J@WCB@E@CD@@ED@@EBAA@@CICADA@A@CABCCCDII@@AG@@GA@@EA@@@IA@BIB@ED@@KA@AEA@ADCAAHGACFC@@DKAABC@AFCCEFC@AFAAEF@BAAABA@CDAACDEEBACAGGB@@AA@BACDAABCECCDAADGAACAHIAABAC@@EDEB@HBBBLIB@DA@@BAD@FKBEH@@MB@@AAAAAI@ABC@BCQ@A@ADKA@CACABADA@G@@DA@@FBBAD@BE@C@CC@CEABAGCJMDFFAACDCA@LGACCCBADB@CD@DI@EEBAIIACDCACAPKROBEBA@[G@AkGBBKBC@AQA@CM@AA@AC@BCEA@COAKBA@CBAFA@@DA@@HGACJG@ABEAFKGEBA@CEAGBEUKA@CQE@BCABCEBAHE@@BB@A@@DDB@ADB@DC@C@@BCCB@OC@HM@AHC@AHF@CHBF@BC@@DB@ADBB@BNB@BB@@FDB@DC@A@CRA@CFBBAFGAADDB@HA@@DB@@D@@ADBBEJDBM@ADg@ABFFABGBCNGBC@CACBAADAAEFACK[AAAJK@AC@GBEDG@ACOFOEAD@JQ@@FBdCDEL@FCD@H@JHXBPHABDEJ@BEDCACHCFAHA@@EG@QB@BBDE@@DE@AAE@@CG@ABADA@ABCAABCDBLD@DHNJDD@HDHHHJFdDPCTD\\JnE€MPDvBJHADHBBD@BD@@EHBFCBEDB@AD@HREB@FHD@DHBBGD@H@ABDBL@@AB@@AD@@CFA@BAFFD@BBB@CB@@FHDADB@@DEAADJB@DCHEAABBB@BFBAFEFADJDABIAADFB@DAB@B@BDBABCB@BE@@DD@Kz@DD@@HD@@DC@ADA@A@AFFB@HBA@BAB@FC@@AIBDBDABD@NA@BBBBABBRA@@@dFFDDHEBBHDNFFABDBDADCB@@AB@BCFO@ABCHCD@BBC@@@FDPRF@FA@DB@@AHAACFCHA@DFAACD@BBDAAABAD@BBD@@CDALBFB"],"encodeOffsets":[[124062,32028]]},"properties":{"cp":[121.113021,31.151209],"name":"青浦区","childNum":1}},{"id":"310120","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@LBBAJB@BD@T@BDbCBBD@FKHEPBDAB@nBRA@A@BHAJCB@@BB@@BTCH@J@ZI`SXQBCHGACFCDBBAB@HIDBF@NGDA@EFEACC@@CFB@CD@DBBAB@@CBAD@@EH@B@@AB@@AA@@EBCA@B@BAC@@AD@BIAKAC@G@IA@BA@GAAB@EQBIGA@IA@GYBYrƒĥDƒEŸU¡_‰[g¤A@EDAA@BIVC@AA@BOBKBAGG@@HCBBBSBCFA@@DA@@FFA@HA@@@EBCAAKG@A@@DI@@FCB@BC@BBA@A@@@A@@A@BABBBCF@FL@CPBJAFBJC@@HBBALADBFKBIFABEDIBCL@JEFAPKJHFBFADED@JADFD@AB@BBABBBB@DBH@CTHBBBADC@@VCL@PCJ‚TfD^JNJLJHBPDV@LBLHJBZDHCAEJYDB@BLHTFBBD@@AD@DEB@@AC@@EF@D@HGD@BAFB@AF@BCJD@ABABB@AB@DCBCDADB@HAB@BB@BAD@@DP@NF"],"encodeOffsets":[[124489,31743]]},"properties":{"cp":[121.458472,30.912345],"name":"奉贤区","childNum":1}},{"id":"310151","type":"Feature","geometry":{"type":"Polygon","coordinates":[],"encodeOffsets":[]},"properties":{"cp":[121.397516,31.626946],"name":"崇明区","childNum":0}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/map/province/xianggang.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"810001","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@D@bKBoCWKACBGCI@CJSVGFIBKCM@ABAF@LFHPFJJPFVB"],["@@ABD@@AA@"],["@@AAEAAB@DDBFC"]],"encodeOffsets":[[[116895,22829]],[[116861,22818]],[[116860,22817]]]},"properties":{"cp":[114.154334,22.281931],"name":"中西区","childNum":3}},{"id":"810002","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BMHBBGD@BAHBD@HKDEF@FHDEDECCGCIAAQWCUBSBDXApREHD"],"encodeOffsets":[[116927,22822]]},"properties":{"cp":[114.18299,22.276345],"name":"湾仔区","childNum":1}},{"id":"810003","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@rWAGBEJKRO@ACCBEAIAEGEACKPA@MDICIDOBKDGAIBIABRNDHFEHADEGE@CFGLC@GAABC@AHECABAN|TTI"],"encodeOffsets":[[116967,22827]]},"properties":{"cp":[114.225965,22.279779],"name":"东区","childNum":1}},{"id":"810004","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@JBJAHBLCPAJCJDPCLOJM@IBAFBBA@CE@AAE@AAFIBQBADAFECCBEA@GFCAYBABIRC@QEGEACBEHMACECQACFE`A@GCK@AFFHADMJBBF@BB@FBHCFI@KLEBCAGWAAQDGCGJQHOPOHS`KLN@LDJAHETUDIJ@HDxCZD"],["@@ACCBFB"],["@@D@@ACCCB@CC@CFBDJA"],["@@BA@AG@@B@BF@"],["@@DABAGCADADBBDA"],["@@BAEBD@"]],"encodeOffsets":[[[116946,22787]],[[116886,22776]],[[116934,22767]],[[117006,22758]],[[116932,22748]],[[116970,22738]]]},"properties":{"cp":[114.160023,22.245811],"name":"南区","childNum":6}},{"id":"810005","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AIBINQNIHU]IsRC@AvFBHFDCLDV@"],"encodeOffsets":[[116920,22860]]},"properties":{"cp":[114.173347,22.311632],"name":"油尖旺区","childNum":1}},{"id":"810006","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@H[@EEGU@KCCDGEEABQi@AHCF@B^P@BABOFCFBFF@FDNADADHJDjB"],"encodeOffsets":[[116919,22881]]},"properties":{"cp":[114.163349,22.333775],"name":"深水埗区","childNum":1}},{"id":"810007","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DEBEFC@CJKD@DCHDLDBMEG@CFCLICETSDQSJeMGVKHGJIR@HFJBFG^FDF@"],"encodeOffsets":[[116925,22883]]},"properties":{"cp":[114.193047,22.312373],"name":"九龙城区","childNum":1}},{"id":"810008","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AC@IH_BAYCEDIAGDICGCCDC@IL@DEDAFCFNDVD@BADBBHCFDJA^D"],"encodeOffsets":[[116970,22892]]},"properties":{"cp":[114.203985,22.336112],"name":"黄大仙区","childNum":1}},{"id":"810009","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@F@HWF@DABD@IHBB@GOAENMBE@AEAGOBCFE@CqXCRSTDFKJED@DFHANFCJBFCZD"],"encodeOffsets":[[116974,22868]]},"properties":{"cp":[114.214083,22.320679],"name":"观塘区","childNum":1}},{"id":"810010","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AEDQ@WQACIKIGCQCABAHC@]I@ADC@ECICCKEGA@NuASIHyO@IEQW@CÙF~bNJFL@D@FLBBNPJJFIDAHEDBDHBDDBBTCB@AHDB^@@JHHF@DDLFJFDBHCD@PPD@L@RLLBDHVBNAHBBABGhB"],"encodeOffsets":[[116914,22950]]},"properties":{"cp":[114.121234,22.368458],"name":"荃湾区","childNum":1}},{"id":"810011","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AC@G]@CABGA@SDAACCGAACFCBGJCIEOIAMKAEHGFgFgPS@E@MEGEEGCAO@E@SLUNCH@DDH@H@JEHAJCHQFAB\\`ZHTCFKBAHFFJFJBBZ@FC^CND@AEINGXA@OL@@U˜@@HN@BEE@@KTA@G"],["@@BAFADAAC@AACDACGEBBHAFGFBDD@"],["@@B@B@@CA@AD"],["@@BAB@CCA@ABDD"],["@@D@CGABAFD@"],["@@@ACICABJFD"],["@@DA@ACCC@ADBFBBBC"],["@@@A@@ABB@"]],"encodeOffsets":[[[116810,22924]],[[116618,22917]],[[116612,22891]],[[116626,22888]],[[116629,22880]],[[116725,22874]],[[116708,22866]],[[116720,22861]]]},"properties":{"cp":[113.976308,22.393896],"name":"屯门区","childNum":8}},{"id":"810012","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BMDIEK@CDCAMHG@C@MCG@YBAZHZDLIJA[gAGBEHMTO@EAIKAQKK@C@OOC@GDCAIEKECCE@EE@HSB@LF@AFM@@G—@@VK@@PWBMHFJ@BMC]DEDY@AAEIEIGEABELSDVHNRJPHJLHXHFBP^ZVBRB@\\CJIDEH@DDAJHDFF@DGL@FFB^CRED@JFDPJHPBHED@HFFF"],"encodeOffsets":[[116828,23059]]},"properties":{"cp":[114.032528,22.44132],"name":"元朗区","childNum":1}},{"id":"810013","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@A@@HIEK@EA@BDH@BBBD@BBBAB@MN@DH@@BEFBDFBDA@C@@VABBDAJ@B@D@D@@CC@ECGB@ACACCA@IFEBAC@CFABEHGF@BACGGB"],["@@DC@CEDAFB@BA"],["@@AABB"],["@@@AC@DB"],["@@AABB"],["@@BAAAEABDDB"],["@@@A@CEDBBD@"],["@@@AABB@"],["@@DA@CIE@JFB"],["@@@@@@@@"],["@@DCD@BNDBDIAE@I@EE@ABABOHAJDDFABC"],["@@@A@B"],["@@B@B@ECAFB@BA"],["@@AA@BB@"],["@@@@A@B@"],["@@A@B@@@"],["@@@A@B"],["@@BCAB@B"],["@@@A@B"],["@@@FBCDBDABBBBBABCB@ABDBBDB@DH@JABBDNEBE@CD@FCKKG@AEC@EBA@ACIEA@EDBB@DB@ED"],["@@A@B@"],["@@D@BCG@ADBBBA"],["@@@@@@"],["@@BAAB"],["@@A@B@"],["@@@@AABB"],["@@QCKMECAKH@FDD@FFDABAFBBHJBPZBDJ@BCD@BBHA@DF@HAAAEEDA@EF@DGF@BC@CGE@GFBLABBADBBDAH@D@@AEIBAFF@ADBDAGGAEA@EIBCLBBA@CDBBCHBBABCTKLFZHRJH@DASMQGGIOEGAGBaNM@eEK@EDKLGBCFEBAAAGGGEEEIIGAEIDU@GBK@IDUAIAEEEGCIEBEAAHM@AABC@EKCWOMEIBKJYCYGAB@ZDH@N@DGHBNCFFNEN@JBFMJBDNDFHFBHEDALDFAFD@KFAFDBFH@FHDBF@DFHAHDLABAFBBDFF@BAAA@@D@DD@@HH@LLDCJFFCJ@BABEFABBJAB@DADDH@BBB@FBDCPBFEJBFC@AFADC@IDA"]],"encodeOffsets":[[[117049,23071]],[[117017,23092]],[[117013,23092]],[[117010,23091]],[[117004,23090]],[[117009,23086]],[[117081,23081]],[[117014,23081]],[[117057,23081]],[[117015,23077]],[[117062,23071]],[[117020,23075]],[[117024,23072]],[[117021,23072]],[[117029,23071]],[[117037,23071]],[[116974,23071]],[[116957,23067]],[[117036,23065]],[[117043,23049]],[[117033,23064]],[[117035,23059]],[[117043,23052]],[[117049,23053]],[[117040,23048]],[[117054,23039]],[[116975,23082]]]},"properties":{"cp":[114.147404,22.496143],"name":"北区","childNum":27}},{"id":"810014","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@HGNA@ACGC@G@OFADCL@FDDJDBA@M"],["@@@EACUMIMGGGCE@@CACIEMCMISGG@CESIGKGEQGG@CBABALQTCDABC@GCK@EBCACAAKBAHABAB@HA@AE@@ENADBDLFBFABACGEEICG@ICQB@B@J@@GBAAEEAODERKMIGMAAUAAAUA@ACAAA[ASAAHABGAMBUAAA@D@FSPIRBJ\\hNFXPLD@FADBBN@BGFBFAHPDFHD\\BJCL@HAV@JCBFJHFJFFHHBHDBHGHALKFCL@fFN@bMLATHHJRHTN"],["@@CIEAEJBBBDBBBBHAFBEG"],["@@@CFABAAGCC@ECCEACB@HAJAB@FEDJJDBHABA@CAC"],["@@BAEBBBBA"],["@@^DLCFBBBBJFJNLH@DHN@NXJFFHPHDABABKDAFDDABGAEBCDBFFALDDBFDBDADIBIFOCCICAAAI@CDG@KJ@HEBBDJCBALDBFBBBDB@HBHHALEDE@IEG@EGA@EDIBYEGAIEEICADMFOLA@KEE@OHKHYDAC@KCECAS@CCAEBGGOK@CACIYCEAGEBLCH@JGJ@FBXCHDL@P"],["@@AEA@ABB@@FB@BA"],["@@@CABBB"],["@@BAAAABBB"],["@@BACDBA"],["@@@A@B"],["@@@DHBAEC@A@"],["@@AA@BB@"],["@@BB@CAA@D"]],"encodeOffsets":[[[117183,23086]],[[117087,23049]],[[117113,23039]],[[117114,23018]],[[117122,23021]],[[116998,22974]],[[117082,23017]],[[117084,23018]],[[117081,23013]],[[117180,23003]],[[117039,23001]],[[116966,22997]],[[117006,22983]],[[116968,22976]]]},"properties":{"cp":[114.171713,22.44573],"name":"大埔区","childNum":14}},{"id":"810015","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@B@@@C@BB@A"],["@@FIJBFCF@JDF@DDBEDBDEHACGDK@EFEFK@EGAI@CDILEBEAIG@C@EECCKBCJEFGFAJGAGDKEGDG@GCCC@CBCFC@AIGAACFEEACC@CEAGB@EC@@AID@KBC@CACCGE@ABALGLBFA@GGEAE@GJAFBFIFCJHN@JOFGFG@@DBHABCFKAAEDCACI@GBGAAFI@GJEBE@ECAEBICCCU@KJI@IGKIBAAHcDEFENAFADE@CDGDET@BCBEJGDKAIKEEEGAACBCF@DA@MHI@CACCAE@AGE@OLEHGBAA@CECCGEAEBITGDANHRGLCDG@QSEG@DEDADHPFB@BEJIJBFHPA@GA@JACCBEBGVE@ABG`@JBDB@ADBFPBPJLLBJRDAJHFFBZDFLN@HPAHBFDDT@DBDF@LBDZCLGPGF@LFB@PKNEBCJDFFBJFHAZCJ@FHB"],["@@A@@@B@"],["@@@@@@"],["@@AABB"],["@@BAC@@DBA"],["@@BAA@ABB@"],["@@@AABB@"],["@@@AABB@"],["@@B@BACEC@@DDD"],["@@A@B@"],["@@@AADBA"],["@@DC@CA@ADA@ADD@"],["@@DBFADBLC@MDEBIA@@GJAHGCCBEAA@CCA@CAEKBEBGACBEDEJAFHHAB@LABBDA@@AA@CBBB@DD@@DCDCB@JBBHA"],["@@@AAAAD@@D@"],["@@@A@B@@"],["@@HE@C@ICAA@AHAHCEEFBF@BD@FA"],["@@BACA@CC@@DFD"],["@@@AA@BB"],["@@BCFE@ACCDQCACB@FCBCLGHFFBHFDB@DE@AEBBE"],["@@@ACAAFFA"],["@@BA@@CBB@"],["@@B@C@BB@A"],["@@@AABB@"],["@@@AA@@DBB@C"],["@@ACABDB"],["@@BAAB"],["@@@@@@"],["@@BACA@BBB"],["@@A@BB@A"],["@@FADIFEAICAACC@ABI@CFBDCD@BCHFFLB"],["@@CEBEBACA@AA@KD@JBHH@@BF@BE"],["@@@@A@B@"],["@@@CE@BFB@BA"],["@@AB@FDC@AAA"],["@@DHFEDAFGACBCMBEJ@D"],["@@BADABAB@BCKBCFDB"],["@@B@B@C@"],["@@A@@BB@@A"],["@@D@C@@@"],["@@BAAB"],["@@@AA@BB"],["@@BAAB@@"],["@@@AADBA"],["@@@@@@"],["@@@A@B"],["@@AA@DBA"],["@@@A@B"],["@@@A@B"],["@@@AABB@"],["@@BAEBBBBA"],["@@@@@@"],["@@A@B@"],["@@BC@AAAEDBDD@"],["@@B@@AAB"],["@@BACKAAC@@JDDBBB@"],["@@AA@B@@B@"],["@@BCA@@D"],["@@@@@@"],["@@@A@B"],["@@@EAABAE@AAA@@JF@@FBBBA@C"],["@@@CCB@BD@"],["@@AA@GAAEAAE@@E@AJFLDDFADFF@@EEC"],["@@AFDBJBAADCDEACFEGA@EEB@FEDAH"],["@@JDB@ACDC@AA@ACB@@ADA@EC@@EAEC@E@AECAABBFIBED@F@DFHFDDAFF"]],"encodeOffsets":[[[117146,22985]],[[117119,22980]],[[117154,22972]],[[117153,22970]],[[117139,22942]],[[117137,22939]],[[117137,22938]],[[117033,22925]],[[117063,22925]],[[117066,22923]],[[117031,22921]],[[117064,22919]],[[117029,22917]],[[117054,22915]],[[117038,22915]],[[117048,22915]],[[117075,22911]],[[117036,22912]],[[117039,22911]],[[117043,22905]],[[117051,22909]],[[117044,22906]],[[117050,22906]],[[117074,22902]],[[117143,22898]],[[117036,22899]],[[117076,22898]],[[117116,22882]],[[117120,22880]],[[117102,22876]],[[117073,22876]],[[117119,22871]],[[117126,22873]],[[117085,22870]],[[117121,22865]],[[117041,22863]],[[117123,22866]],[[117118,22860]],[[117118,22859]],[[117118,22859]],[[117069,22860]],[[117077,22857]],[[117116,22856]],[[117068,22845]],[[117059,22840]],[[117059,22838]],[[117061,22837]],[[117066,22837]],[[117066,22837]],[[117061,22835]],[[117070,22834]],[[117061,22834]],[[117068,22833]],[[117064,22810]],[[117100,22804]],[[117100,22803]],[[117118,22799]],[[117120,22799]],[[117028,22798]],[[117095,22795]],[[117103,22791]],[[117097,22787]],[[117105,22856]],[[117111,22850]],[[117039,22789]]]},"properties":{"cp":[114.264813,22.314203],"name":"西贡区","childNum":65}},{"id":"810016","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@PGJAVDFD@HDBJBPA@OCKDGAYHM@IDGAKBIQCAIKKOIMACEBC_CIBECGDAABC@AUCKCG@ICeAICAAGHAL@FFJCP@FDHADLBFDLJDJRB@XCRBFHBBBDB@BVBBBXBHPNJ"],"encodeOffsets":[[116956,22970]]},"properties":{"cp":[114.195126,22.379715],"name":"沙田区","childNum":1}},{"id":"810017","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AECBMBECGA@CDEPEBA]QDGBGj@@cUADF@F@DCFIFSJQTQBaASPEBGzTJvB@MHBLFDDDJ@FCD@@ZJHBBIJBBCCI@GDKEI@EBKHG"],"encodeOffsets":[[116892,22877]]},"properties":{"cp":[114.13918,22.363908],"name":"葵青区","childNum":1}},{"id":"810018","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AIIGQCQ@GE@G@ICCGAAABCBA@GBGCA@ADOAGO@KBMLC@ACAEFARSDEACSGCEACLIL@DEPCBACEAECCE@AACEIECCKCMGI@KJGJEJ@FDLIBSGUAOOSEAABE@ECG_CSBUPAHGBICEOUMGCKBC@GCGGMCABDRGDAF@HBFEHAP@JJJH@BNRFDDBHEBICAH@DPHF@DAFFFNLBRFBHNNBD@HEJJVED@DBD’ZD@DEPFBAFCBAI[@CFGF@~dÚE"],["@@DC@AKE@ABADDF@BCFCAAIEG@CBAB@DABAFGDBBXF"],["@@BAAAC@ADDBBA"],["@@BCAAIBA@BDBDJB@CAA"],["@@BCCGGCGBABBHFDL@"],["@@J@FC@AAKFGCIC@EDADAD@B@BCBAAEHI@AF@BB@@DT@"],["@@CEMI@ABEHHFBHBHAFDFBF@BCLBDC@AGIK@OMDKJM@CAAC@YP@AHKAGAACBGHEGC@GBMDCD@HBDFDDDBXCFBNAHEBA@@IEAGCK@CNBDLHHD@BEBDFGD@DVJBBBBBCF@BECGACLGBEAADEDADFF@DE@E"],["@@@CEA@DDDBA"],["@@FEFBD@DEC@@CCAACGF@AE@CCBAC@CCCCCBBBG@AHH@DHH@DFADABE@CD@BD@DF@BABBDDBH@DBDB@E@AEAFABAKCAA@EDA"],["@@D@ACAACD@B@BDA"],["@@BAC@BB"],["@@B@BBBA@EACGAEFA@GDBHJJFA@CB@BCAA@C"],["@@D@BCBEAECCGC@BIB@CAA@FA@@PTD"],["@@DE@KG@CBAHBDDABFB@"],["@@BB@CAB"],["@@BHBB@CAEA@"],["@@BADBDABAD@BAAABAAAABABAA@CA@ADAAAB@DABCACCC@BRHCBC"],["@@@A@ACA@DDB"],["@@DAAC@@CD@BB@"],["@@ABBA"],["@@BAC@BB"],["@@AAA@BDBA"],["@@A@B@"],["@@BBBAAAABCAA@FB"],["@@@BD@DDCDBDDBDAB@FCAAE@@EBABEE@CAI@AACAGF@DFDF@DA"],["@@@A@A@D"],["@@BACA@BBB"],["@@B@@AEABBBB"],["@@DFPFBFF@BCFCFICCDEBIQA@DA@EC@ECCEAE@FJIBABD@@DCAABBJDF"]],"encodeOffsets":[[[116799,22849]],[[116787,22826]],[[116803,22822]],[[116823,22817]],[[116799,22797]],[[116780,22791]],[[116882,22747]],[[116881,22757]],[[116774,22741]],[[116575,22748]],[[116686,22746]],[[116733,22725]],[[117001,22721]],[[117036,22720]],[[117038,22719]],[[117053,22714]],[[116651,22714]],[[117053,22714]],[[116664,22710]],[[116665,22706]],[[116984,22706]],[[116645,22704]],[[116647,22703]],[[116640,22702]],[[116646,22692]],[[116656,22693]],[[116663,22685]],[[116998,22691]],[[117001,22702]]]},"properties":{"cp":[113.946059,22.286371],"name":"离岛区","childNum":29}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/map/province/ningxia.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"640100","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@CFGUKGQCMBSH[НJSEGmUQBLYgSeHECWBUJgBGV[DAPHHBrDDAG]DG@[FBCV[VP’GA[GYMYWu{‰sUoOWECCE_FgF‹DMAk¹FÅ`KY}WkMEGCJOTGJSLONW^OJja^[\\EFcTUJaDaZYLS^GJaRg^BLM@CDKAIBSBUH@H@BUJCHGF@DGLBDFB@BIFFFBDI@BFE@@BJTCD@BJBADHBzB\\FD@FCTBBBXVHRID@xIBaBA`EBw@MLADBFJDTV@B]TIP@FABQJUKA@M`GDCD@BH@BDADIB@JEFDD@DQLKFEDKVCPIJMHSFAFCFBD@HHXHHTJFH@LS^CJBHiHABGHSFDPCBKCOBIDMJIDOAEAAAMOGIGBArED]JFF@DAD[FAAEGC@WDADJJADGH@DNDADMD@DNFBDADIAAAWUICCCCKAEWUEAkRMBEHAG@GGOsLEGW}s`HRVj^xBDEJ™`aJEFGJGDGLJLXFTHNBDQZ]\\K`GJIHAPIJCLBFFLV^@DGXENBVDNGJBFJHT@PL@DINCPKNCRJJ@NPPAJENBLXPJJBV@TCPIT@PFNBBVFBBDHBHADKHABAJCJOLARELAH@NDHJLNJJFFDBFCNBFFFNJV\\BBAJQ\\@FBDTLHJJDBBDL@JCNCFCDADFRFHBDKJGHAL@HDBVDFFPFLLR@BBAHBDLNDFFHVPNFFHDLTFXRHLDLLHBHN@jKZ@NAFAXUJ@PITIRI\\C^ADCBMDILGFEDANCxAJALEV@BKLCJ@`PPFJIHQBCH@VDFAZMJGLABOH@LBPLZBBAEI@CBGHGJAVBHHXENEfDRFBGKSAKnEAK@iHE^GF@JFNEP@FKMODQBEhNLPZ@NC^O€ALGLKXEjEr@@[EOKIbChM`GHGAgPKZY[ŅUco•]oįÏ@ENOBEZEH@BCVGHCRQ^aRK„Yv[ZIVAhGPCRIvMfQRAZSVUbQVGŽKPC"],"encodeOffsets":[[109389,39080]]},"properties":{"cp":[106.278179,38.46637],"name":"银川市","childNum":1}},{"id":"640200","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@J{AQWËIO¥‘ue“‡_]gkEKCCQWEKWYcqŸ{MU‘ěYZOLBhGH_HgNaDLJFP@\\q@iFWFKLKHB]PMDY@KOgMAFCRNPELO@MFIEE@]HGF@jBLmFBLLTAHQEeCMFWFGGUAIBGHAH@DFJABYAOKKAG@APKBIHYNEBUCG@ADGRIJOE_OI@KDALU@KFIBwBQFQRCFANAD{FQJSJOJI@WVEBMBY@iLM@@@GB[CKLOVCNANHNNLZRFBZRRZNN\\NLBPATLDJ@JJTFFLBHNLNDJBLABGHGFEHFHJH@@IFFN@RJZLNDVJLPLHJL^JNFJLR\\bVP\\FNIHMRORERAHAzENGJALFNHZHPHDDBJLTDLCPKVAR@JDfCLAVGVC`BFHJLHJ@ND\\ANDJA^LfH\\FLAVDNBJBPCV@`CPEbCRGBA\\GjGHBJHBF@LJF@LBDDBALFBDFCFR@NPJBFFPFDDBDHDFFDHLNHDJHJRRXDFJHzSPKJCjEV@LBXRpTVCLBTLNDD@DIDELAV@TALIFIP[@CIO@ELQPO@GIW@SH_COUaCM@IJGFKAICK@MLKXKXQHYHa^uLkJQXUVMlMFCDAFAFBHAF@VGFBHIHABEBIDCPBLKDCLB"],"encodeOffsets":[[109535,39993]]},"properties":{"cp":[106.376173,39.01333],"name":"石嘴山市","childNum":1}},{"id":"640300","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@IHKHCHIFEbIš_FIAC]wUiGQt_X~FHtKHP@HBHFGNAlQFBXVBFDLDDJDXVBBJBBCACME@CNCBCMC@CHGBCIIBCXCD@FHBB\\EBC@CEE^IFCBqHAHJNPBBFBPBJCNIJCPALDDACOTEHGBAjGAGDIT]@KEGSIGGGW@GACDEBETENGJIDOLUFCLERK@CCCFE@IJABCACG@@ADCHCN_B@VLRIBA@EJO^S@ASUICAEBCNKx@FAB_bAJA@wJCGQWUAASAEDC@[EyAGABCIA@ADCIS@AF@AEJ@ACEEJE@AEAACHK@CHEDGVI@A@GVGTAJALBDCN@AKh]bQHIT]ZKbYbCVIdSFE\\[b]ŽiPIX]PMTKHIPSDIFHlN~XLZÆ_ºEBlCNEŒEhF`DDXFpPtV|ŠXvNZHZB\\‘HUOU\\ADEŽ@\\CHH^CBqCGAOGCBU\\AHIhAVDXGFTfZhŽKRAnVFHIT‰°G\\ATDNHRVLEH@DQZIVER@bM‚Q°Q`CDLFBJALBRGJAN@DDPNDHLHFAJGTGB@FHDBF@HCPDTCJDHDBNDJLLJLDBHAHIhETADBLFD@DCRODGXQ^GFIJOPK`IbEVK`AN@XGXKFEDGPUPKLEDOBC^UPOVaFCLAjENCFCDE@EJEBAo…KYBCNK~ORR`Ff@HELMf]uÜkVMJCLID]SqG]KSggK@KDGNEDEJC@KCGDBLEBGCIG@ABCJELBF@@A@EM@YMg@{GoMIKG]DYCWCMGOMMYQOCI@mII@EBUNIBgCEKJ[zIJAA[CCgHEAomCCQK@CDGGEGCOGeBCCGA[HhsXEtNHIBGEICOCECSESEKIGESIK[UkYGC]IMMCG@SBm@IS“ESSg@MBCDWAIIOAKFI@GHWL[FKLILEBCJCBEDB@EDC@AFABCAAHEACDEBB@EDABKDAACBEACBA@C@CAAE@SFGBOGUCEC@C@EJGXM^URIFEJB@EFCBCE@FCD@BCBGDA@GFAACDA@EFAACDAACDEBEACDCEABEB@@AGEFCCEBAAABCEADCGCBCAE@EIE@CCCEKECC@AC@CG@BGIMKRIFADCAEFADCFEF@@CBBBABAAGFEACEHEBM@@KACEHAHDD@@AGCBKHGJE@AMFGAKDgNEAIKME@DCFA@@DC@GJCBADGBADC@CDCD@BGFCFGBADKFEFGDORUGK@UCE@KCI@KCCAGCAAEAECGACBQE@COKEACFGDGLE@IFG@IAGCCCC@SHEFGAQPGBCDIQ@ABIDCBGDGAQC@ADGFE@QFICIJQFIGDAHCBGJCCCCAIDM@UFKBODAD@HINWTKDEDGDADKDABM@SJKCAA@GKECA@CZMB@DBNADMDCUA@K@CHCBEAAE@K@CAGEACBGGAIHKLUPWCG@]XGFCCIJEBIJCFEFGDS@UNADCDEBCA@BGDCAE@@@DAEAD@DCFE@AEEC@CL@AEA@CCMEABECC@CJQDE@CKKCGIGGIDENGEIASA@KHGJCJDFCFIBKACFBHACCAMJ@NDJABIAQAKDQGGDGHGNAAKKISECGACFALAHEDCBUESIGTK@GFOFEBCAACDGEFA@GCCCBAHIFM@EJMFQFGDAFMLANQHS@EAEBC@CDEBOFGACBGNI@KHEHCBCKOECQJE@IADE@C@AHIAECEEODKGMBKFKMB[GCDEAEBOBSJCDACGG@K@EDEBMDGGAGCGCGAIDGLCFBBH@FCHDUVBDCBCDGBGFQPGPGFC@ACAIFG@GNOHMFEECAECIBELGFBHIPCDDNALIFINANCHKFEBIECCEFK@CCBIFAABC@CFGHEACDABEHLHBBHNFD@JEDELG@AAAGBECAAFEBCHE@ECAKFDE@AEAGECBAAJE\\K@ACAFGAC@GAE@GGENAJBACBCBCPIBEC@AC@CDCAEE@ECEFA@AABIE@CA@CFC@GAGEE@CEB@EAADACCDCAA@A@CBG@ECC@KCEAGK@AAJOCKD@@GFEDADEJABCBAAAEAKFECA@a^@@ACCAAIKNCHG@IL@FCBG@EKAAEBMDC@@A@EEEDICCG@YJA@AIAAG@EAABCAAIEBIHAC@GIEGEKAEEJK@AD@DCBEBCLWC@KDAC@AGACFA@CDAACBECEB[KAC@GBIHOCOHKDK@CG@@AC_SC]MKBEAEFSDEACBEBKRCBAA@I@ASGACEDI@MISDMBE@ICHG@CACEEO@QCyQ]KUBEBMTCHOBKAOGABCNUJIDCC@C@GMKC@EDQFIB]EEACG@M@UBGC@IJUBYCWOEA]RCVGNLZAJgjYLAZW\\A`y|SlHd[VU\\cXD`E\\qd[CMJOEIF@H\\XILBX_TCTKHI@AJJB@HiZAREBK@CA@I@A]QGAECEBCFEBC@IELQ^[@IIIKEDGIMOQIEKECCBKACCCSCCA@GGE[GECCO@OCOIEEACBCN@NCJKJODKAOEKGM@OAOBGJC@WQECA@ILBBDHGPCNAZ@JDHJBJD@HEXBH\\^ABGLQJOND@HEDBJAHCFETCAHBFLJJDJ@BJDFBBF@HFRJDDJDHHPDLJDD@FDDALBDADDHBBB@NHD@FDF@MNÔ]rED}@MJspIF]H[NOXKbAJFFBH@RCFEB@PADCDmAGAkPWBIA[@IBKHCLMJSDHDT@LBDBBDFB^ARDf`LFLJZZfTJLFDB@HGBCGAAA@ADCBIHCHGHUFK@OGEACAGEGACLEBEDC^WJI@IZBX@LDL@FD`BNDNJADE@CHBDBDFADBDDADKHECCBAFBFADB@DCD@@BABOJDHF@@BEFMHCAGHBDABDDGDBLED@DCB@BCD@HAHQZGH@BjNNBZHLLLBJFDNBBŌUPHPRDJBF@HGHKHKLWLU@aRWDIDoZKHADDFDRDBDBhG^@DBAHSb@BPPNFpJD@LGDCB@FDL@DBFJAZžLB@ABEBBDEABDE@FFE@@DEB@DGFABA@BDIECDE@ABC@AFPDJAR@NHHALEH@HFLBLNBLDJBFDBNLNFFRFDF@FCL@FFBDFDVFLADBBBIJGFMTOHYBMHEJDBDAB@@BsrILEN@DDPJHZAHHCNAJBHFH@JALEDSFIJCB_@KDEDEBW@OCM@SHILEDE@@ABK@EAIIOKGGMKMEMAMAAAAkBABFHRN@DKRCLMH@DDDBD@JCDJPFXBb@fVTFFCXABMEUAcHW@QUGD_HGBICQDUBQDG@UKWIM@Y@qHGCUCKCS@OAaIUIEIgEgAFHHX@€LrHDNDL@JAREdCNGL@tPTFNJhJNHRHXVN`DPFJFJXXLLDHFTC\\EREJCNAjBNBFXlX\\P`PVBNCHCDMXUXS\\_`YdQpG\\BPAJDPDrFRAHBPLXDH^^LFLDXJZNRNBLTf"],"encodeOffsets":[[108394,39184]]},"properties":{"cp":[106.199409,37.986165],"name":"吴忠市","childNum":1}},{"id":"640400","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AKGACBBDABD@BDDDDA"],["@@AGBAC@EJBHHG"],["@@@@A@OLBPAHBBB@JKHC@AEIBI"],["@@NABFjVRPVN‚XNJLDNBDED@BCVCFI@O@CJGLEJIFIAIFAFCLEDGFAHK`WLKNI\\EH@LDTZPJXDXAPADBFHHDJ@TIJOLWYUKEGIDEL@LHHDJ@JCPBPFH@JCFKBMBCJEDBRNVXRHPLJ^LRRVRLCPALBJBJDDr@tEX@JC^Q^MZCR@E^AbMlQ`UlIPBHFHNDDBBHCLBFHH\\C`GHJBJJJ\\@fLFAJEVIDBBHBFJ@DALO^OH@NLLDJB^@bN`HPFZDFDFPFHpffTFBF@\\CJBDFBJNjBBJGFANBJHF@NCHBBBAVBNDNHRPX@BA@KKEAC@@RCXADEB@FBFJDLFPBBBJLDPVADDDJHHLFF@LFH@HA\\IR@PHDDAFNCHELBJFB@RSXUHAJFHGFDDAF@FCBMLMH@BDF@CFBHDHDBPS`GFCBCCIFG@CCGAKGIKCKKAC@CEK@AHAHEDG@GGCCICDE@ALKBAIBKAC@IGGBAHCXFHCLQB@FHFCJABCCEACBELEDEAECAI@MHODCBCCBUACC@CECAB@AA@DEBKEBAAA@HIDANIBKAGDI@CCAINIDCNKPIFCHCCGDAAOCAABKNOLSBGFEH@FIHADGDADIFBDHLBHCLKTGJKDAHLHCD@DBHFFJAFDD@FELBFCHDH@DJEF@PEDBBCHFF@@IDI@AD@DABCDCBEDJF@@DBDCH@JDF@DFFD@B@DGBAB]DEFBBFF@FKD@LGD@HCD@BLDTHHB@HEEAAC@GDMAIDGLCDBBRD@LGHDDHNBBB@AHAADABHDHGFSNQBG@ID@BEDAJB@CDCLGBFDDTINJ@AFIFC@DFAJMRIBABABBDCDB@BD@DED@DCBRBDD@PKBPHBBAJCFGBEDABCHCDABHDDADLDDDDCFB@CJGFXFDLQD[AB@CD@DEDBFC@@ADBDBDF@HADBAC@CJIFIBQFEFCDED@DDDAFE@CJMF@DDJBBA@CHGFKHCFACIEGDECIACFGD@BDDGBAFBCK@CDFDG@JBJDBHLFB@AAMAG@AESHEHDHPHHDAHEIG@GAABMABA@A@AAE@PMP@DU@B@FDC@FDABC@GCGDC@IDAEAGB@@DB@BM@DGAEBBBAAEMCCACC@GACBCFABBJ@CEE@@C@@AK@WECQC@GAEAM@GFCDCRAFENBAGCABOCGGGQEGKAAEDA@AKIEEK@]ACC@EDAF@JDD@FCDEDACEBGCA@BHADA@CCCDABAAHUBKFGFCJCDBTCFPDDFBHAH@FFHKBGDC@CGQGFEACEMGMDCDGDGI@CAAEBBO@IG@IHIDE@MESSA@CDIAEDA@BCECDCDI@EQIE@AA@CFGJCLATCB@BHBBHEDE@EDEAEEDCBCFE@GG@CF@BCJ[@ABBABBJD@DCAOBCTU@CJGDEDATJBADCJSEE@CBARABE@CCCICA@EFCBKAGBEDGAAEDCFBD@BSDAHBBAEABAHBBA@KECHKGB@ABKAEEAMNCAACCOBE@AWBA@DJ@HCDQJE@C@EE@CBGCSB[CKCAGBMJGBMCMBCKCBCJEDK@EAAC@ELQAAEDEEFC@EEKKKIEIBEFALABECCAED@DC@AAA@CHGAAAA@EFIE@B@JCBEAMIC@AFE@AABICWDEKGAADEJDD@DKAEGAIDE@GCAAEFAECBAFA@GDYTiVIJAJA@CCE@ABHH@BEBKCAIEG@AFK@AKF@GEBEGI@CBELCB@IAAI@CBCDOFKPCDADCX@HCBC@EECK@ICAAB@PADE@AHABG@CA@E@EFE@CAAGGC@KDO@EHK@GHCBS@KDKAWDE@AABK@QAACHEVK@IEK@GBSAECBC@AKEDC@ECA[EMCU]EEIMEAE@MG@YBGFG@ACC@CBCLDB@BQFGBETGCIGEAGDELGJIBCAI@OBAFCDCJ]AGDCJEBCA@EAKDMHG@A@IWEQCIACFKCKDABEMEMO@AFMLADCCG@EVIFEBKDGAUJCNDH@LDD@BECSESJAIIAGBGHGR]BOHEBA@ACCKSEUBAFADICG@KJIBECEBAPMAAG@KKIBACCQEGFOAAIGIMECEECCQEK@@CCAQKACEAADE@CAAAKEEKGECKGEC@IHC@GGWCKGULI@ECAEDKLQBKACIEACKIK@CBEFANABGDUAKHGNEDGBADDN@HMJGLIAIBCDAFEDIFGF@FBDBHOTITMBK@EBKLCTGHIHAHDHLHBH@FKHG\\@FANCRS@QFC@CCOAM@KBEDCHEXC@@CCACAAD@PADIDECCOEMQG[[SKK@DGAECEAKEGBCAEC@CDE@ECACHMAEI@CBCHANGN@FFFBDABMD@FFH@FABY@KXDFBHMRDJ@HEJ@F@BGBADD@BAHF@BCDE@GHDJBFCRCNAB@JDDLBHAH@BBH@DJBBLDDB@FADGHCDQBICEGBGCOCCC@ABCVCBAA@EAAE@CBEBCAA@@CYCSCSAEBAD@JKJADBBH@DFATCDG@CACEC@OLGDQBIDC@EBUA]JU@[FQBMFGFCDC@KCM@GCBGAIUBIHGSAOCMCCGCGYIOEAC@KJAdALFJADAD@NANCDSIADFHFF@DG@CJADFJEHAJELMIMCEECBOREHMH@BEF@DB@J@DD@DGFDBABGFODI@GBKJBHCBIACFBDHBJ@DD@HHNADGDCACEAGGEQF@FFPAFEDG@IAEEE@KNABE@CB@BADFPHH@BAHBDDBBD@DEJGDMBIJYEABBP@DAJJHHDJCDBBFHHDNFHJJF@BCAGAAFKBUBEH@LCFBHLLJFJDBBDFPAFEFKCEFC@GEAICAEBMPEBK@CBEHI@EAGGWHAB@PABI@C@AC@KAAC@EBADAJAFABG@@AIAIEEBCEG@CCMAECACG@@CEAOGaEMECC@CBCACSBICMDI@@CFMDG@GCKGCEGC@CFCPNVBJCJILEBWDQKC@KJE@WGKGC@GHE@IACFCBSBGFAFG`ADABGDEAKII@@PDJDXAFSLMCEBIPCtALCBEAIIA@ABANADC@IASQGGO]EEEBABKTBDVX@BKEE@CBBFDF@DEVGNAD^TLMHABBBDBLCLGHKHMHICGBKDMLCEKAQHORKZAHFFFDF@FADBENAZCFQNAFBDDDBFFFF^ANDNCjFFD@AB@BH@@PBDEFBFBBABDDAFDDBHFAFBDANFDAJ@ELCB@DFLJJFABHLJH@DBDCDLDEBD@RBDJ@FFLIDBT\\HFFBLVJ@DABBB@FIBHH@FBBCDABDJHH@DABCFEBBFCDBDABDB@FEDBHABBBDFAPfBB@FENPCBJDLNPCFQLGF@LKFBFENGPBFAF"],["@@AIAAABCHI@EB@F@F@BCBGJAFCBEAGCCEMAAA@EOK@EFI@CMIC@ABBHAFOJAADGAOACQAKCEAACBCKCCACAABELABC@EGO@AC@IA@A@IFQBCCGGE@EAMCCCO@KGCDAD@JELAT@HBJDHJF`DB@FGH@HBNHLJJ@PBFFL@NFHHJBFCRHDDBBF@FBJ@D@NHF@HANDLJFBPCFDFBTBFCBECEIMAMFIEGFI@A"]],"encodeOffsets":[[[109061,36594]],[[108620,36306]],[[108619,36271]],[[108021,37060]],[[108600,36305]]]},"properties":{"cp":[106.285241,36.004561],"name":"固原市","childNum":5}},{"id":"640500","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BECCOGQ@cLG@KEE@KEGGCICCUBCOKMOAKEICAIHGDW@QD@FBLLB@@AOWGQCMAMBUAAGAMDE@IGMAEBIHAAMiAICEIA[DE@EAeSoeEGEOECYCOE_GaM]@IAKCMKG@]PKPCBI@AEAGCAUJIFEBeK[@IIAIGI_H[DGGAEDKAGCAMCEGAGJOVkR_NkBaF]Q@YD]N]RIDW@sFq@CCAIAIBKDOQKQUKQI]OKQGUWQMCAIFADANELIDG@OEOAIDI@GCKGK@CFHJLFZVKXIPSJI@GCEGCAOBWBWCOISYKCG@[FMJKL_XGLEBCHKFEDEBBJEJIJKFIH@D@PEJUDADC@CFMAKCMIWUMQOiUAEMBGJ@LEAABBJ@FEHEBADIFKDGFEZBHHHHPENGJ@HDDJJL@DDFR@LGNIJOJCFCFAPABQFU@EFMD@PABEBCDADDFG@ADC@EDAFCDBBABEBAF@DELB@X@FD@DFHINWBA@In@LFX@HCBIFGFAFED]G@IAAABIJAFBFLX@JBFCDELBLDFAJCNGPYVIJMHCHQNINC@OEECIKCAC@EDMBGAKECHEAA@CFAFEACBEFA@EAEVQDHNTJF@JHH@DBELDLAFIHGPBBHFAFONUCKXE@@B@V@BO@CBAFE@CDGACBADFFAHFJBTFJEJa`M\\@JAHBDFJFDRdTJJCP@BDAJ@DBB^@^EFB@JHJ@DBBNCP@NCRMH@RBTRHVHBHD@FI^@LCN@JCLIAOHQNKFIJCF@LGDCB@FBBF@BHeTBBBHAL@HADGB]VWVEEC@ADFFIFEEE@OOCDALGEEDUJGCGDAEEAECBEC@BC@AYLFLGBBDHCBHC\\IZTEEF@BDB@HADBJGDBDGDCRBFEHIDCDE^@ZODUAOBS@ODGBMB_LGFOFOBQJOJKEG@MMEKAAK@EDCDaNF^SHYAEHAACGA@YCEAGBUR@~ANEHEDaF]TCFHR@DAFINEDIHMDBBAB@BDBCFDD@HBDGAEH@FGNCHIB@DIHYLAB@LADIHADBfEFBDADOJ_LKLABMBO@IJCACCKCEAAFCBAFGLUJSOOAMEEKICIIMECGWMW@YGKBGEIDI@IAIJA@AAACICUBECGAMBIFCNKHGJGDShAD@PHTLPDHADFDJBHAFF@JKLBHHFPBZQH@H@JLNFBXLJNFH@N@\\VDBPCDDBHFHAXG@UIMBIFSFODIDM\\AHBFHHDFDJBTBDPJBFQH[BGDCDSDGBQEQ@GDE@KNEBqB_FUGKAGCKJGBEDADSDGICAI@EGOGOAMDgEMBQJGVOTC@KCsKIEQEIIUCGIKCiD…KYAUP@N`\\hNJ@PIJ@bLPPNHjA`HFdR~VAFHĤHâHþRîNJBv`†XŽ@lLĈNbN¢xjdDDRFJ@VD~\\nLVLNLbPTD^B`JbDbPhNR@L@^F`BZF`APDHBXC\\CfQpEHBhApBh@¨H^@JDLJhBhFFJVJbJPBT@LDVDHDrGZ@N@XJVLH@RCVARCJDHA`GHCRVX@dGVBNFBADWEEUS@eAaEWIODC@IACCC@CNGDKLQ@CQMEGBAlABBBBBNFNLNHNLHJPBJ@FAL@BF@FCJKTGN@PDX@FAFCLC`@DAJITEFCBK@IEGAGBIDMGGYBIGCO@CFMJKtq@AA@CBCAFINGZAPGNSHEJIAACAKBUEECACEEK@EDE@ECEQMEMKCAAECIAKKMKAGEG@KFGBMGQ@IBOCBED@BAF@DCJFACB@BAHE@CFA@CF@EEF@ACFBACFABAA@KBYEICAK@ECA@CDKHC@oIMEOO@ATaBGCA]@gHCACACQCEBCTMhSJCXCbQV@XKDCTOHG@GEOOQOGŋVAACMIEKAKKYGMAiM@AHGRYBG@GDC@ADA@CFCAKHCCCBAACHGDBNGFE@AE@CGPIBA@AC@CDA@BCAEBEDAFDLGBCCCCAEBCEDIF@BCMIMC_AECK@KCW@YA@JIJ]XCDAFKFBDFHBHBDHF@PELGVGHGDAJCD@BBBHBADGHA@ECIKeSYYKIKEe_QC]BEAACCAKAS@GCTCNIDKLGJA\\@JBXAlOHBnBDCBC@OFADE@QAGEEBILaPW\\M^GJEtoNI~@FC^qžÓNME@ECC@MGA@AACGBCACBKCC@ECCKIOCGGICCCQIGEE@AACEAII@ICKIAEBGSDEFGDIBCAGFC@PMRIHKBA[]AGFW@GICIACG@IBYDMHOCGAAJKB@FDXRD@HIPAPBN@LHPFLBPCLIDI@MDMDAFBJFDP@PDPFD\\HHF@HDBTDDDBDALDDLFJFPRJNCHLFJJ@J]\\KRJFD@FADEFAFDLBPNJD@B@JDBL@FABQjY@GIABIJ@LGDS`SAWJK[W@GJEPFNI\\DrcF[C_dWV[\\UGcTkz{B_X[BYZKhiBIKYHMDU^QFBXPZDVAJID@AH@V@NDHFB^FJAREFCD@NL@H@DDDJCVIDMBAPHLBPADGNSFAVA^LzRRDP@FFBD@DGHJDF@NATCNJJ@FCBDTH@B@JDBNSFAFABCBO@ECC@EA@@KDEDCL@FEFABCBEHC@CNEM@QEM@@ABAJCHIAECAAIO@EEKFQASFCBADSPWJ@ADCACAGEIDGEGEDIJC@INKFEHC@CBA@BEEA@ETY@QXGNFN@JCJM@EJCJEDICAAEIE@A"],"encodeOffsets":[[108965,37396]]},"properties":{"cp":[105.189568,37.514951],"name":"中卫市","childNum":1}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/theme/vintage.js: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | // AMD. Register as an anonymous module. 4 | define(['exports', 'echarts'], factory); 5 | } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { 6 | // CommonJS 7 | factory(exports, require('echarts')); 8 | } else { 9 | // Browser globals 10 | factory({}, root.echarts); 11 | } 12 | }(this, function (exports, echarts) { 13 | var log = function (msg) { 14 | if (typeof console !== 'undefined') { 15 | console && console.error && console.error(msg); 16 | } 17 | }; 18 | if (!echarts) { 19 | log('ECharts is not Loaded'); 20 | return; 21 | } 22 | echarts.registerTheme('vintage', { 23 | "color": [ 24 | '#0ba82c', 25 | '#2c6eff', 26 | '#16f2d9', 27 | '#fe211e', 28 | '#fa6900', 29 | "#eedd78", 30 | "#73a373", 31 | "#73b9bc", 32 | "#7289ab", 33 | "#91ca8c", 34 | "#f49f42" 35 | ], 36 | "backgroundColor": "#ffffff", 37 | "textStyle": {}, 38 | "title": { 39 | "textStyle": { 40 | "color": "#333333" 41 | }, 42 | "subtextStyle": { 43 | "color": "#aaa" 44 | } 45 | }, 46 | "line": { 47 | "itemStyle": { 48 | "normal": { 49 | "borderWidth": "4" 50 | } 51 | }, 52 | "lineStyle": { 53 | "normal": { 54 | "width": "3" 55 | } 56 | }, 57 | "symbolSize": "0", 58 | "symbol": "circle", 59 | "smooth": true 60 | }, 61 | "radar": { 62 | "itemStyle": { 63 | "normal": { 64 | "borderWidth": 1 65 | } 66 | }, 67 | "lineStyle": { 68 | "normal": { 69 | "width": 2 70 | } 71 | }, 72 | "symbolSize": 4, 73 | "symbol": "emptyCircle", 74 | "smooth": false 75 | }, 76 | "bar": { 77 | "itemStyle": { 78 | "normal": { 79 | "barBorderWidth": 0, 80 | "barBorderColor": "#ccc" 81 | }, 82 | "emphasis": { 83 | "barBorderWidth": 0, 84 | "barBorderColor": "#ccc" 85 | } 86 | } 87 | }, 88 | "pie": { 89 | "itemStyle": { 90 | "normal": { 91 | "borderWidth": 0, 92 | "borderColor": "#ccc" 93 | }, 94 | "emphasis": { 95 | "borderWidth": 0, 96 | "borderColor": "#ccc" 97 | } 98 | } 99 | }, 100 | "scatter": { 101 | "itemStyle": { 102 | "normal": { 103 | "borderWidth": 0, 104 | "borderColor": "#ccc" 105 | }, 106 | "emphasis": { 107 | "borderWidth": 0, 108 | "borderColor": "#ccc" 109 | } 110 | } 111 | }, 112 | "boxplot": { 113 | "itemStyle": { 114 | "normal": { 115 | "borderWidth": 0, 116 | "borderColor": "#ccc" 117 | }, 118 | "emphasis": { 119 | "borderWidth": 0, 120 | "borderColor": "#ccc" 121 | } 122 | } 123 | }, 124 | "parallel": { 125 | "itemStyle": { 126 | "normal": { 127 | "borderWidth": 0, 128 | "borderColor": "#ccc" 129 | }, 130 | "emphasis": { 131 | "borderWidth": 0, 132 | "borderColor": "#ccc" 133 | } 134 | } 135 | }, 136 | "sankey": { 137 | "itemStyle": { 138 | "normal": { 139 | "borderWidth": 0, 140 | "borderColor": "#ccc" 141 | }, 142 | "emphasis": { 143 | "borderWidth": 0, 144 | "borderColor": "#ccc" 145 | } 146 | } 147 | }, 148 | "funnel": { 149 | "itemStyle": { 150 | "normal": { 151 | "borderWidth": 0, 152 | "borderColor": "#ccc" 153 | }, 154 | "emphasis": { 155 | "borderWidth": 0, 156 | "borderColor": "#ccc" 157 | } 158 | } 159 | }, 160 | "gauge": { 161 | "itemStyle": { 162 | "normal": { 163 | "borderWidth": 0, 164 | "borderColor": "#ccc" 165 | }, 166 | "emphasis": { 167 | "borderWidth": 0, 168 | "borderColor": "#ccc" 169 | } 170 | } 171 | }, 172 | "candlestick": { 173 | "itemStyle": { 174 | "normal": { 175 | "color": "#c23531", 176 | "color0": "#314656", 177 | "borderColor": "#c23531", 178 | "borderColor0": "#314656", 179 | "borderWidth": 1 180 | } 181 | } 182 | }, 183 | "graph": { 184 | "itemStyle": { 185 | "normal": { 186 | "borderWidth": 0, 187 | "borderColor": "#ccc" 188 | } 189 | }, 190 | "lineStyle": { 191 | "normal": { 192 | "width": 1, 193 | "color": "#aaa" 194 | } 195 | }, 196 | "symbolSize": 4, 197 | "symbol": "emptyCircle", 198 | "smooth": false, 199 | "color": [ 200 | "#d87c7c", 201 | "#919e8b", 202 | "#d7ab82", 203 | "#6e7074", 204 | "#61a0a8", 205 | "#efa18d", 206 | "#787464", 207 | "#cc7e63", 208 | "#724e58", 209 | "#4b565b" 210 | ], 211 | "label": { 212 | "normal": { 213 | "textStyle": { 214 | "color": "#eee" 215 | } 216 | } 217 | } 218 | }, 219 | "map": { 220 | "itemStyle": { 221 | "normal": { 222 | "areaColor": "#eeeeee", 223 | "borderColor": "#444444", 224 | "borderWidth": 0.5 225 | }, 226 | "emphasis": { 227 | "areaColor": "rgba(255,215,0,0.8)", 228 | "borderColor": "#444444", 229 | "borderWidth": 1 230 | } 231 | }, 232 | "label": { 233 | "normal": { 234 | "textStyle": { 235 | "color": "#000000" 236 | } 237 | }, 238 | "emphasis": { 239 | "textStyle": { 240 | "color": "rgb(100,0,0)" 241 | } 242 | } 243 | } 244 | }, 245 | "geo": { 246 | "itemStyle": { 247 | "normal": { 248 | "areaColor": "#eeeeee", 249 | "borderColor": "#444444", 250 | "borderWidth": 0.5 251 | }, 252 | "emphasis": { 253 | "areaColor": "rgba(255,215,0,0.8)", 254 | "borderColor": "#444444", 255 | "borderWidth": 1 256 | } 257 | }, 258 | "label": { 259 | "normal": { 260 | "textStyle": { 261 | "color": "#000000" 262 | } 263 | }, 264 | "emphasis": { 265 | "textStyle": { 266 | "color": "rgb(100,0,0)" 267 | } 268 | } 269 | } 270 | }, 271 | "categoryAxis": { 272 | "axisLine": { 273 | "show": true, 274 | "lineStyle": { 275 | "color": "#333" 276 | } 277 | }, 278 | "axisTick": { 279 | "show": true, 280 | "lineStyle": { 281 | "color": "#333" 282 | } 283 | }, 284 | "axisLabel": { 285 | "show": true, 286 | "textStyle": { 287 | "color": "#999" 288 | } 289 | }, 290 | "splitLine": { 291 | "show": false, 292 | "lineStyle": { 293 | "color": [ 294 | "#ccc" 295 | ] 296 | } 297 | }, 298 | "splitArea": { 299 | "show": false, 300 | "areaStyle": { 301 | "color": [ 302 | "rgba(250,250,250,0.3)", 303 | "rgba(200,200,200,0.3)" 304 | ] 305 | } 306 | } 307 | }, 308 | "valueAxis": { 309 | "axisLine": { 310 | "show": true, 311 | "lineStyle": { 312 | "color": "#666666" 313 | } 314 | }, 315 | "axisTick": { 316 | "show": false, 317 | "lineStyle": { 318 | "color": "#333" 319 | } 320 | }, 321 | "axisLabel": { 322 | "show": true, 323 | "textStyle": { 324 | "color": "#aaaaaa" 325 | } 326 | }, 327 | "splitLine": { 328 | "show": false, 329 | "lineStyle": { 330 | "color": [ 331 | "#e6e6e6" 332 | ] 333 | } 334 | }, 335 | "splitArea": { 336 | "show": false, 337 | "areaStyle": { 338 | "color": [ 339 | "rgba(250,250,250,0.05)", 340 | "rgba(200,200,200,0.02)" 341 | ] 342 | } 343 | } 344 | }, 345 | "logAxis": { 346 | "axisLine": { 347 | "show": true, 348 | "lineStyle": { 349 | "color": "#333" 350 | } 351 | }, 352 | "axisTick": { 353 | "show": true, 354 | "lineStyle": { 355 | "color": "#333" 356 | } 357 | }, 358 | "axisLabel": { 359 | "show": true, 360 | "textStyle": { 361 | "color": "#333" 362 | } 363 | }, 364 | "splitLine": { 365 | "show": true, 366 | "lineStyle": { 367 | "color": [ 368 | "#ccc" 369 | ] 370 | } 371 | }, 372 | "splitArea": { 373 | "show": false, 374 | "areaStyle": { 375 | "color": [ 376 | "rgba(250,250,250,0.3)", 377 | "rgba(200,200,200,0.3)" 378 | ] 379 | } 380 | } 381 | }, 382 | "timeAxis": { 383 | "axisLine": { 384 | "show": true, 385 | "lineStyle": { 386 | "color": "#333" 387 | } 388 | }, 389 | "axisTick": { 390 | "show": true, 391 | "lineStyle": { 392 | "color": "#333" 393 | } 394 | }, 395 | "axisLabel": { 396 | "show": true, 397 | "textStyle": { 398 | "color": "#333" 399 | } 400 | }, 401 | "splitLine": { 402 | "show": true, 403 | "lineStyle": { 404 | "color": [ 405 | "#ccc" 406 | ] 407 | } 408 | }, 409 | "splitArea": { 410 | "show": false, 411 | "areaStyle": { 412 | "color": [ 413 | "rgba(250,250,250,0.3)", 414 | "rgba(200,200,200,0.3)" 415 | ] 416 | } 417 | } 418 | }, 419 | "toolbox": { 420 | "iconStyle": { 421 | "normal": { 422 | "borderColor": "#999999" 423 | }, 424 | "emphasis": { 425 | "borderColor": "#666666" 426 | } 427 | } 428 | }, 429 | "legend": { 430 | "textStyle": { 431 | "color": "#333333" 432 | } 433 | }, 434 | "tooltip": { 435 | "axisPointer": { 436 | "lineStyle": { 437 | "color": "#cccccc", 438 | "width": 1 439 | }, 440 | "crossStyle": { 441 | "color": "#cccccc", 442 | "width": 1 443 | } 444 | } 445 | }, 446 | "timeline": { 447 | "lineStyle": { 448 | "color": "#293c55", 449 | "width": 1 450 | }, 451 | "itemStyle": { 452 | "normal": { 453 | "color": "#293c55", 454 | "borderWidth": 1 455 | }, 456 | "emphasis": { 457 | "color": "#a9334c" 458 | } 459 | }, 460 | "controlStyle": { 461 | "normal": { 462 | "color": "#293c55", 463 | "borderColor": "#293c55", 464 | "borderWidth": 0.5 465 | }, 466 | "emphasis": { 467 | "color": "#293c55", 468 | "borderColor": "#293c55", 469 | "borderWidth": 0.5 470 | } 471 | }, 472 | "checkpointStyle": { 473 | "color": "#e43c59", 474 | "borderColor": "rgba(194,53,49,0.5)" 475 | }, 476 | "label": { 477 | "normal": { 478 | "textStyle": { 479 | "color": "#293c55" 480 | } 481 | }, 482 | "emphasis": { 483 | "textStyle": { 484 | "color": "#293c55" 485 | } 486 | } 487 | } 488 | }, 489 | "visualMap": { 490 | "color": [ 491 | "#bf444c", 492 | "#d88273", 493 | "#f6efa6" 494 | ] 495 | }, 496 | "dataZoom": { 497 | "backgroundColor": "rgba(47,69,84,0)", 498 | "dataBackgroundColor": "rgba(47,69,84,0.3)", 499 | "fillerColor": "rgba(167,183,204,0.4)", 500 | "handleColor": "#a7b7cc", 501 | "handleSize": "100%", 502 | "textStyle": { 503 | "color": "#333333" 504 | } 505 | }, 506 | "markPoint": { 507 | "label": { 508 | "normal": { 509 | "textStyle": { 510 | "color": "#eee" 511 | } 512 | }, 513 | "emphasis": { 514 | "textStyle": { 515 | "color": "#eee" 516 | } 517 | } 518 | } 519 | } 520 | }); 521 | })); 522 | -------------------------------------------------------------------------------- /frontend/public/static/theme/chalk.js: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | // AMD. Register as an anonymous module. 4 | define(['exports', 'echarts'], factory); 5 | } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { 6 | // CommonJS 7 | factory(exports, require('echarts')); 8 | } else { 9 | // Browser globals 10 | factory({}, root.echarts); 11 | } 12 | }(this, function (exports, echarts) { 13 | var log = function (msg) { 14 | if (typeof console !== 'undefined') { 15 | console && console.error && console.error(msg); 16 | } 17 | }; 18 | if (!echarts) { 19 | log('ECharts is not Loaded'); 20 | return; 21 | } 22 | echarts.registerTheme('chalk', { 23 | "color": [ 24 | '#0ba82c', 25 | '#2c6eff', 26 | '#16f2d9', 27 | '#fe211e', 28 | '#fa6900', 29 | "#eedd78", 30 | "#73a373", 31 | "#73b9bc", 32 | "#7289ab", 33 | "#91ca8c", 34 | "#f49f42" 35 | ], 36 | "backgroundColor": "#222733", 37 | "textStyle": {}, 38 | "title": { 39 | "textStyle": { 40 | "color": "#ffffff" 41 | }, 42 | "subtextStyle": { 43 | "color": "#dddddd" 44 | } 45 | }, 46 | "line": { 47 | "itemStyle": { 48 | "normal": { 49 | "borderWidth": "4" 50 | } 51 | }, 52 | "lineStyle": { 53 | "normal": { 54 | "width": "3" 55 | } 56 | }, 57 | "symbolSize": "0", 58 | "symbol": "circle", 59 | "smooth": true 60 | }, 61 | "radar": { 62 | "itemStyle": { 63 | "normal": { 64 | "borderWidth": "4" 65 | } 66 | }, 67 | "lineStyle": { 68 | "normal": { 69 | "width": "3" 70 | } 71 | }, 72 | "symbolSize": "0", 73 | "symbol": "circle", 74 | "smooth": true 75 | }, 76 | "bar": { 77 | "itemStyle": { 78 | "normal": { 79 | "barBorderWidth": 0, 80 | "barBorderColor": "#ccc" 81 | }, 82 | "emphasis": { 83 | "barBorderWidth": 0, 84 | "barBorderColor": "#ccc" 85 | } 86 | } 87 | }, 88 | "pie": { 89 | "itemStyle": { 90 | "normal": { 91 | "borderWidth": 0, 92 | "borderColor": "#ccc" 93 | }, 94 | "emphasis": { 95 | "borderWidth": 0, 96 | "borderColor": "#ccc" 97 | } 98 | } 99 | }, 100 | "scatter": { 101 | "itemStyle": { 102 | "normal": { 103 | "borderWidth": 0, 104 | "borderColor": "#ccc" 105 | }, 106 | "emphasis": { 107 | "borderWidth": 0, 108 | "borderColor": "#ccc" 109 | } 110 | } 111 | }, 112 | "boxplot": { 113 | "itemStyle": { 114 | "normal": { 115 | "borderWidth": 0, 116 | "borderColor": "#ccc" 117 | }, 118 | "emphasis": { 119 | "borderWidth": 0, 120 | "borderColor": "#ccc" 121 | } 122 | } 123 | }, 124 | "parallel": { 125 | "itemStyle": { 126 | "normal": { 127 | "borderWidth": 0, 128 | "borderColor": "#ccc" 129 | }, 130 | "emphasis": { 131 | "borderWidth": 0, 132 | "borderColor": "#ccc" 133 | } 134 | } 135 | }, 136 | "sankey": { 137 | "itemStyle": { 138 | "normal": { 139 | "borderWidth": 0, 140 | "borderColor": "#ccc" 141 | }, 142 | "emphasis": { 143 | "borderWidth": 0, 144 | "borderColor": "#ccc" 145 | } 146 | } 147 | }, 148 | "funnel": { 149 | "itemStyle": { 150 | "normal": { 151 | "borderWidth": 0, 152 | "borderColor": "#ccc" 153 | }, 154 | "emphasis": { 155 | "borderWidth": 0, 156 | "borderColor": "#ccc" 157 | } 158 | } 159 | }, 160 | "gauge": { 161 | "itemStyle": { 162 | "normal": { 163 | "borderWidth": 0, 164 | "borderColor": "#ccc" 165 | }, 166 | "emphasis": { 167 | "borderWidth": 0, 168 | "borderColor": "#ccc" 169 | } 170 | } 171 | }, 172 | "candlestick": { 173 | "itemStyle": { 174 | "normal": { 175 | "color": "#fc97af", 176 | "color0": "transparent", 177 | "borderColor": "#fc97af", 178 | "borderColor0": "#87f7cf", 179 | "borderWidth": "2" 180 | } 181 | } 182 | }, 183 | "graph": { 184 | "itemStyle": { 185 | "normal": { 186 | "borderWidth": 0, 187 | "borderColor": "#ccc" 188 | } 189 | }, 190 | "lineStyle": { 191 | "normal": { 192 | "width": "1", 193 | "color": "#ffffff" 194 | } 195 | }, 196 | "symbolSize": "0", 197 | "symbol": "circle", 198 | "smooth": true, 199 | "color": [ 200 | "#759aa0", 201 | "#dd6b66", 202 | "#e69d87", 203 | "#8dc1a9", 204 | "#ea7e53", 205 | "#eedd78", 206 | "#73a373", 207 | "#73b9bc", 208 | "#7289ab", 209 | "#91ca8c", 210 | "#f49f42" 211 | ], 212 | "label": { 213 | "normal": { 214 | "textStyle": { 215 | "color": "#293441" 216 | } 217 | } 218 | } 219 | }, 220 | "map": { 221 | "itemStyle": { 222 | "normal": { 223 | "areaColor": "#f3f3f3", 224 | "borderColor": "#999999", 225 | "borderWidth": 0.5 226 | }, 227 | "emphasis": { 228 | "areaColor": "rgba(255,178,72,1)", 229 | "borderColor": "#eb8146", 230 | "borderWidth": 1 231 | } 232 | }, 233 | "label": { 234 | "normal": { 235 | "textStyle": { 236 | "color": "#893448" 237 | } 238 | }, 239 | "emphasis": { 240 | "textStyle": { 241 | "color": "rgb(137,52,72)" 242 | } 243 | } 244 | } 245 | }, 246 | "geo": { 247 | "itemStyle": { 248 | "normal": { 249 | "areaColor": "#f3f3f3", 250 | "borderColor": "#999999", 251 | "borderWidth": 0.5 252 | }, 253 | "emphasis": { 254 | "areaColor": "rgba(255,178,72,1)", 255 | "borderColor": "#eb8146", 256 | "borderWidth": 1 257 | } 258 | }, 259 | "label": { 260 | "normal": { 261 | "textStyle": { 262 | "color": "#893448" 263 | } 264 | }, 265 | "emphasis": { 266 | "textStyle": { 267 | "color": "rgb(137,52,72)" 268 | } 269 | } 270 | } 271 | }, 272 | "categoryAxis": { 273 | "axisLine": { 274 | "show": true, 275 | "lineStyle": { 276 | "color": "#666666" 277 | } 278 | }, 279 | "axisTick": { 280 | "show": false, 281 | "lineStyle": { 282 | "color": "#333" 283 | } 284 | }, 285 | "axisLabel": { 286 | "show": true, 287 | "textStyle": { 288 | "color": "#aaaaaa" 289 | } 290 | }, 291 | "splitLine": { 292 | "show": false, 293 | "lineStyle": { 294 | "color": [ 295 | "#e6e6e6" 296 | ] 297 | } 298 | }, 299 | "splitArea": { 300 | "show": false, 301 | "areaStyle": { 302 | "color": [ 303 | "rgba(250,250,250,0.05)", 304 | "rgba(200,200,200,0.02)" 305 | ] 306 | } 307 | } 308 | }, 309 | "valueAxis": { 310 | "axisLine": { 311 | "show": true, 312 | "lineStyle": { 313 | "color": "#666666" 314 | } 315 | }, 316 | "axisTick": { 317 | "show": false, 318 | "lineStyle": { 319 | "color": "#333" 320 | } 321 | }, 322 | "axisLabel": { 323 | "show": true, 324 | "textStyle": { 325 | "color": "#aaaaaa" 326 | } 327 | }, 328 | "splitLine": { 329 | "show": false, 330 | "lineStyle": { 331 | "color": [ 332 | "#e6e6e6" 333 | ] 334 | } 335 | }, 336 | "splitArea": { 337 | "show": false, 338 | "areaStyle": { 339 | "color": [ 340 | "rgba(250,250,250,0.05)", 341 | "rgba(200,200,200,0.02)" 342 | ] 343 | } 344 | } 345 | }, 346 | "logAxis": { 347 | "axisLine": { 348 | "show": true, 349 | "lineStyle": { 350 | "color": "#666666" 351 | } 352 | }, 353 | "axisTick": { 354 | "show": false, 355 | "lineStyle": { 356 | "color": "#333" 357 | } 358 | }, 359 | "axisLabel": { 360 | "show": true, 361 | "textStyle": { 362 | "color": "#aaaaaa" 363 | } 364 | }, 365 | "splitLine": { 366 | "show": false, 367 | "lineStyle": { 368 | "color": [ 369 | "#e6e6e6" 370 | ] 371 | } 372 | }, 373 | "splitArea": { 374 | "show": false, 375 | "areaStyle": { 376 | "color": [ 377 | "rgba(250,250,250,0.05)", 378 | "rgba(200,200,200,0.02)" 379 | ] 380 | } 381 | } 382 | }, 383 | "timeAxis": { 384 | "axisLine": { 385 | "show": true, 386 | "lineStyle": { 387 | "color": "#666666" 388 | } 389 | }, 390 | "axisTick": { 391 | "show": false, 392 | "lineStyle": { 393 | "color": "#333" 394 | } 395 | }, 396 | "axisLabel": { 397 | "show": true, 398 | "textStyle": { 399 | "color": "#aaaaaa" 400 | } 401 | }, 402 | "splitLine": { 403 | "show": false, 404 | "lineStyle": { 405 | "color": [ 406 | "#e6e6e6" 407 | ] 408 | } 409 | }, 410 | "splitArea": { 411 | "show": false, 412 | "areaStyle": { 413 | "color": [ 414 | "rgba(250,250,250,0.05)", 415 | "rgba(200,200,200,0.02)" 416 | ] 417 | } 418 | } 419 | }, 420 | "toolbox": { 421 | "iconStyle": { 422 | "normal": { 423 | "borderColor": "#999999" 424 | }, 425 | "emphasis": { 426 | "borderColor": "#666666" 427 | } 428 | } 429 | }, 430 | "legend": { 431 | "textStyle": { 432 | "color": "#999999" 433 | } 434 | }, 435 | "tooltip": { 436 | "axisPointer": { 437 | "lineStyle": { 438 | "color": "#cccccc", 439 | "width": 1 440 | }, 441 | "crossStyle": { 442 | "color": "#cccccc", 443 | "width": 1 444 | } 445 | } 446 | }, 447 | "timeline": { 448 | "lineStyle": { 449 | "color": "#87f7cf", 450 | "width": 1 451 | }, 452 | "itemStyle": { 453 | "normal": { 454 | "color": "#87f7cf", 455 | "borderWidth": 1 456 | }, 457 | "emphasis": { 458 | "color": "#f7f494" 459 | } 460 | }, 461 | "controlStyle": { 462 | "normal": { 463 | "color": "#87f7cf", 464 | "borderColor": "#87f7cf", 465 | "borderWidth": 0.5 466 | }, 467 | "emphasis": { 468 | "color": "#87f7cf", 469 | "borderColor": "#87f7cf", 470 | "borderWidth": 0.5 471 | } 472 | }, 473 | "checkpointStyle": { 474 | "color": "#fc97af", 475 | "borderColor": "rgba(252,151,175,0.3)" 476 | }, 477 | "label": { 478 | "normal": { 479 | "textStyle": { 480 | "color": "#87f7cf" 481 | } 482 | }, 483 | "emphasis": { 484 | "textStyle": { 485 | "color": "#87f7cf" 486 | } 487 | } 488 | } 489 | }, 490 | "visualMap": { 491 | "color": [ 492 | "#fc97af", 493 | "#87f7cf" 494 | ] 495 | }, 496 | "dataZoom": { 497 | "backgroundColor": "rgba(255,255,255,0)", 498 | "dataBackgroundColor": "rgba(114,204,255,1)", 499 | "fillerColor": "rgba(114,204,255,0.2)", 500 | "handleColor": "#72ccff", 501 | "handleSize": "100%", 502 | "textStyle": { 503 | "color": "#333333" 504 | } 505 | }, 506 | "markPoint": { 507 | "label": { 508 | "normal": { 509 | "textStyle": { 510 | "color": "#293441" 511 | } 512 | }, 513 | "emphasis": { 514 | "textStyle": { 515 | "color": "#293441" 516 | } 517 | } 518 | } 519 | } 520 | }); 521 | })); 522 | -------------------------------------------------------------------------------- /frontend/public/static/map/province/beijing.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"110101","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DB@DP@NCHB@XD@AED@BKB@@CD@@AV@@EJ@@EAB@KB@AA@AP@CDJ@@CD@@EACB@FBD@BAACCCAG@QI@CB@A@@@BE@B_BWLBN@@CE@@AB@@KH@@AD@@AC@@CIB@AC@DWCKi@MAE@@CD@@@@EB@@AA@@CC@BGC@@AG@CBM@@AI@@HC@@BC@@DE@@DKCIBFB@HfBAvCB@PG@BHA@@BB@ATJ@@BF@AJC@AXCB@bMA@H"],"encodeOffsets":[[119181,40920]]},"properties":{"cp":[116.418757,39.917544],"name":"东城区","childNum":1}},{"id":"110102","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@}EAB@HI@@DCBOAOBIC@NB@BLB@AFF@AB@LX@@DC@BJCBBHAF@VAbE@@BA@CDJDLABA@BDADBFBHADBAF@HHBBC@IJ@VHAhT@BJZ@@GGA@CCABCA@AMNB@aDABWD@BIE@@AI@BSA@@AB@AGH@@ODABueA"],"encodeOffsets":[[119174,40829]]},"properties":{"cp":[116.366794,39.915309],"name":"西城区","childNum":1}},{"id":"110105","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@@B@@@HCCA@BDBHAHA@A@BBC\\IA@KA@AJA@GpARB@AFD@BGB@BAD]`D@FF@ALB@AH@BDIB@@ID@BKB@@CC@FYB@@AA@BWB@@@BKCEA@@BOABCFEE@BIC@@AGDC@AH"],["@@@JI^s†xHZBHBADGD@FBDD@DIVFDBBFA@@BA@AJF@AFDB@DLBdLJ@@AJ@NCD@@DFBBAD@@AD@BFB@ABBDBDC@@DCB@JHBADBBABJDADDB@B@HFAFGTC@AD@DCZ@HEJIHCVBJAJELKJEJJBA@CBCBBDAAAA@DECC@AIC@ADE`MFCHID@JEB@IFJ@BECCp[HAZAHANGEGNGJFLMBKG@AEKA@ABELB@CBAAEDQB_DMMHKBCIFI@CG@BCAKGBACLQSDBAA@BECAF@@IC@BGCABAD@@AC@BCDAEKEAG@DC@IZ@BQI@@GIQBAD@BCFGAAD@[US@BGF@KKAKBEE@@KAA@BMB@EOBHHSAAFGD@FE@@CC@SBS@EDCCAGAAEDE@ABC@@ALEACE@@CE@@DK@AFUBAEE@BGC@@CMED@BAE@@AGAABCA@FC@AD@CE@@CG@AGQEC@IJKAAFQL@AABQCADBFDBGFACG@@FM@@BI@@BN@BJFBBBA@BDDCD@BD@DD@AAB@@DF@AHJB@BB@ADF@FCBBBCDABFDA@DD@@BD@BFABGACD@BA@@AGF@AC@MH@AA@@CCD@DA@@BA@@JD@@DA@DLCXD@@BJA@DD@@BC@@BG@@LA@@BF@@DM@KAAXA`F@@A@@@BDAJ@@RBHDDBDABC@EAA@BD@FC@@DI@DCO@@BBBA@@LBA@FI@@FU@@BC@@DA@ALC@BFC@@WGAMDO@@CCABFB@ADDB@DHB@HY@"]],"encodeOffsets":[[[119390,41009]],[[119175,40933]]]},"properties":{"cp":[116.486409,39.921489],"name":"朝阳区","childNum":2}},{"id":"110106","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@KBAE@BEA@AKA@@MJDPAPBDA@CJ@@GBA~F@GEAJALD@CF@@CD@@AD@@GJ@@BN@DAH@@BD@AHD@@DB@@BA@@F@@C@@DF@NBhABBB@@CC@@IB@@AB@@CDC@DB@@BNGD@@BHE@BB@@ADCJ@AEC@@AC@@CCBAECBADAAEDE@BCA@@AIABGE@@CA@BBC@@CACC@CDACB@AAEAAIM@@EG@@EA@IFAIHC@CBA@AA@BGE@EB@AAB@BC@AKB@JDDEBCB@@DF@DC@AB@@CA@@CJ@@QCA@BK@@IA@@CqA@CB@BGB]MAA`KA@AKBALO@@AE@@LCHF@CLS@AJSBBBK@AIWACEG@@EAG@OG@MW@CG@CDCBCDDBADC@IZBBA@EAAFJDCDICCH[CSIC@AFCDE@@EIABFALDF@DAJONCNEBUBA@BCCAY@@IDEKIEABICA@CEAACAA@[AOKB@DG@EBACG@BDC@BDKBO@ACCOGKABCECBAAKA@BE@ADAABA@AC@CCCDCCABBDA@AAG@EEC@@AG@AFA@@GA@AHCBBDCDBBB@BA@FA@@AC@@BFLD@BA@AB@BBD@@BBA@BH@B@C@@BFBGBBDE@ABI@AB@AA@AB@HE@CBAEABM@BEGACB@EAFAAC@BAACI@AFACA@BHCLBBADBD@DA@@B@DADANBHDBADC@F@ARB@@FGFAA@EA@CHA@CAAB@DAFKDEDMBMHDF@DHDDARDANEJHFPDRIHBJDLADB@DBDNBPHLBLFTFNBFAFD@FD@PCHDBCBBDEBBRGVAHDH@LGDEBCDBDACHF@DCH@@JH@@FJ@@LB@FABBDAAD@BH@@DB@BBB@DALDP@@AD@BDŠ@@SBAFFHB@AADH@BBEBFDJBBBZ@"],"encodeOffsets":[[119118,40855]]},"properties":{"cp":[116.286968,39.863642],"name":"丰台区","childNum":1}},{"id":"110107","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@HIDCACBAHBJFBADODCNJBD@JJEFC@GCCBEAEBCDCF@@ELEHABGHCHIFCBCDA@CF@@EE@BIA@BA@AC@A@@AFCC@AC@@FAAAOA@CA@@KD@DCND@AD@R@HAJ@@BBDRABDJB@AAADCG@@A@AH@@eN@C@@CC@@BO@KCCBA@AAA@@CG@@ABCCBAAEBA@@KI@@EG@@IG@CDE@DGCBCAADCFKHG@KCUBMHAACFAACDKPKFABALKFEHENCDGBMDAB@HEJICADED@BGJDLB@B@JDEFBBEH@DDABDD@DL@BCB@BGDETJHbDNDFANJ"],"encodeOffsets":[[118940,40954]]},"properties":{"cp":[116.195445,39.914601],"name":"石景山区","childNum":1}},{"id":"110108","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AC@EHCBCGAYAwGt…HYBGAOS@@ABeUGI@@JADGA@GBECAGBEACACB@AABKBICDCB@@AF@Ba@UBEAGDAAID@@Cq@AAIAECFA@@A@@AG@BC@BGAEEAB@T{AYB@fG@@B@BH@CDBB@BIAACQBAC@AI@GBQ@C@@BMCCDC@@LB@@DPBBBEB@@BDD@ED@BB@D@@BABB@AJF@@FE@@DCBADEDGJGDAHGBKF@FE@CDADBFAFDD@HEDIF@IACMICDCPABIEGAABBDCDGJDB@DDBLDVDBFDDCB@DC@ADEDA@CBAFIDADC@GDEAGFCDQHI@KAC@@BMDQAIDE@ECUAGDC@GH@FADGN@DCDHN@FKHAD@FADGFCA@BCBEHCHCB@BDJFB@DDDLFBHNDBFDBBNHAFDDDDDJA@@HBFBDEB@BCDAHDFAHC^DDCF@BNh@bF@DCDH@AHCFANNDLF@HFF@F@BPCB@DHRBBMDG@KHEFAFFB@dMZ@A]A@@EE@DIEG@CHCNBJEDBBDCFBDJA@ABAACBA@C@CFA@CIABCDB@EPBBCAANYVHZmFDFCHB@CJDPMDBBAHFLBDGF@AJJ@AHF@BCDBADLBL@@FP@D@ACB@BAJ@FA@DBABGICBAEA@BAAABCA@GIADKD@@CJ@@EFBBAH@JAD@"],"encodeOffsets":[[119185,41003]]},"properties":{"cp":[116.310316,39.956074],"name":"海淀区","childNum":1}},{"id":"110109","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@GCODC@@EECEBMASEKEKAOGMAAC@CCAKBICGAQJOCGEFIBMQCCBGC@CCEG@IBGA@AIAGDCEE@CCMAAB@HAHMBgSCB@B@FIHFPBFAJLFDDFLOB[KBC@@QABDBDC@MGMAEBCHEBG@_HCBGNBBPNLLRHAFDLINI@OESAI@CBOA[HWCIEEICCOIMAGCIAIFCBEAQVOFO@GLKDGBICe@CBEHKCCCWGACcOSACCO@C@GCK@OEEGMEAIECM@GCYCKMG@IGQ@ECIECGIIG]MGCEBA@AKIEOIEEIUAQ@CFGBIDEBOF@FCBKDGDIAGLSDE@CLADJFNV@HAJLDBLE@QJMBAFBFHDBFDBFHFDADSPEDCFGDC@EDGBADMH@FEFELQFE@CBGBEDMFADKBGFIBCCE@C@CAEB@DEFDH@DDHEDAFDJBHB@DHABFDDFHFNFD@BCH@EPBDEFEBAHFHDDJJDHBJDBF@BBP@THDFHBHHBD@BBBRJD@BFH@@DJLADLDDFTLVDH@BCB@FDLDBDDBBFCLDBBFF@HFF@BCFBBBDDDBBADGFAF@LBDHAFDHAFDA@NJHV@NEJDDADAH@DBJCL@DBCHFH@DTJFC@AbBHDFBF@FCFDD@FE@ADCLDTC@DABK@KFJ@LDLAPIJDLALFBBHDDDDBHJBF@DGFADHL@FBDFBJCFDFBJVLDHAHD@QFCXSBCHG`@LEB@NIBDCFXELBBBFCLDF@LIFABBHCFEh@FEFDLABBFELAFEDAFGHCNQD@DGDA@CBCEACEB@NCD@AAJG@DBFD@HB@AAE@GCCDGHGBEAABA@CBCLFF@@DFBPDLADBDANEFBDANC@CJATPFEHJLAHDD@DADGFGDA@ADBHEBC@EBCLG@EGMDC@CHMBC@EHGD@HCVBFDF@JCRBNC@AD@LBJ@JCDCD@DCHEFBHCD@BCJCBEDAB@FCBCD@@CDACCAEUCKCCA@CQKEBMCaCIGFSHC@ADA@ACKC@ACCB@CFGAAFEICA@A@CKHI@AFCBCJDFI@GBANCHADCFMFGLEBKBALENO"],"encodeOffsets":[[118956,40847]]},"properties":{"cp":[116.105381,39.937183],"name":"门头沟区","childNum":1}},{"id":"110111","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@NGNAFCLCBE@CBADBB@DGB@@FBBHE@EA@BQE@D@BCCAAGBMBC@C@AB@@CACBCAADKAGB@BDBEJ@BDABD@BBBE@FDAHBAFN@BABFDAF@@GBAB@@BBAJ@BAF@ACHAEA@AD@A@G@@AAB@AC@AAA@@BABC@EK@AD@@BB@@EABA@AADCACDABGB@@HB@BEH@@BD@FFH@BBB@ACBADDDCDDD@@BABBBBCF@@ALBBBDADFBAHLDPBDP@LAACD@ACH@BDFAH@@CLABP@\\BBBDFB@DDBAJFBLJCF@JZ@DBADB@ZABCDMPKBI@CEGDIAG@K@GDEAEBCAEDQCIBGAIGCAEEAACFI@EDCACBCEGBCCGIGECACGGBADACG@ECKS[@AHCBCIIDKKU@GCIH]AMBCAK@KFMBCBCAEHEAMGKYAAHA@@DE@@JCB@E@F@EA@@FAE@@@FA@@EC@@FE@@CE@@DK@@DOA@II@@@MCI@@BKABDCBCE@IA@@CA@@GC@@AA@@HA@CGAAGBAEA@G@EA@DQB@HIAEEO@@JIHBGED@E¿EGB@DCBC@AAEBBFA@DNA@@DIAIDC@AGB@@AG@AICAEA@BI@GABNE@CFA@BHA@@HGA@DKAADCA@GA@@QB@@ECEDEBAE@@EA@ABI@ACA@@GGB@CG@@EC@@FE@@DG@AFA@@JAACDE@@FI@@HE@ANCA@DCB@FKBAB@DKBCBE@CDAKCA@AAEFCAGNACCB@AEEIDACEB@CAG@DA@AGBAAABBBC@@BCAEBKABIBB@CBA@KK@DAA@AAD@CGGB@ESB@CA@@AK@AHGCKN@AE@@CC@@CGB@AAMC@CC[@@KGACGG@BKB@BCC@HABEIABAD@C@BED@@CFDFA@CC@@AFACCODK@SDBADA@AE@BD[BKAQHAAIDIBDCAAFCCC@@EFAFE@EACDCA@AACC@@@@B@@@DAB@BEDB@ADEDADEXGFB@BBCFABD@@DC@@AID@ACBCAADE@DABGEBD@E@@AC@DBC@D@A@AF@HA@FBID@BD@EJBBC@BAC@@BIDCCCBC@BBM@GBEDFB@D@BDBFAAB@H@@BDEBD@A@@DEA@BABBH@DABIL@LGJQFIFGLAABCAABCCGMGACG@@BG@CCG@A@AHIBEABCCCBAC@MBEHGBKEIAOBCCBAMCGCCIEBGAODBFBDKFCH@@EHODEJKJA@KCKG@C@CEEAABCMGKC@ABC@ACCE@BFEV@JDHJHHFAD@JCBDBADADDFADBDKB@DIBCJEFSBAAAEA@MBEDICAD@DBBBHDDBDRN@BIFBB@FDBAB@DFBDDABBBF@@BDBCBB@DBBBEDDDADCBGHE@FHBFCLALAHBFEFBFHF@FE@GFGBW@EEGHE@CBKHE@GDKDGL@FCFBLGDGCCHLDFLTHRGLBdRFJHDPEDB@CFADCFCJIDAB@NJlHB@DDHBPAHB@BJHDFJDAJFFR@VBFJJFFPLJ@BABDFNHH^JJDHJFFDR@JHH@LNZDHDN@FDBJNFFHPFL@HDD@P@DDTBdPBDXHDDLDFGDAf@JDHALCHKP@PERUFBDAJEJBHDNBPJDDFJJFXD\\GPBDAJ@TBPFJ@JMCKBEQGKKOMAAHMDA`GH@FADGFANBNHD@ACACRB@@AD\\LPAEKCCKEBIAEEOJG@IF@bRDBNABG@GBANBDDF@DFHCJB@BHBJAH@"],"encodeOffsets":[[118840,40803]]},"properties":{"cp":[116.139157,39.735535],"name":"房山区","childNum":1}},{"id":"110112","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DDH@DJ@JJB@BLB@GH@@AD@@GJB@AD@BAH@ABFBFGD@ABNDJDDBBGHEHFBABCF@BGD@@CB@@BJBDAFBBAJ@@ADA@GDBCNDB@AHBBCHBNHFLBADDNEBGF@AFJCBFF@@AHA@FD@@BF@@DL@@AF@@CBB@GF@@CD@DGX@NCCEBCJK@KAIOUAKEGIGAMBCJGdKDCBWAO@QAQFQ@UDGPKNEF@@NH@@HHBBQF@BEP@FAJOHIFBJIFCL@BGB@DKRC@ELCD@@BJA@FJ@DANKBEDAJEJADBBB@DCHEFAHBFLB@BDBNGNQDEBMDSAKDCRKFCBCO@DIA@@AB@BCZCDCBGCBGADMGA@BE@GFI@YAIIJMOGDCCA@AEBCJCCICBGEADELB@E@@@CD@@EB@@AB@DCCAFEGA@ED@@CH@@IIBSEBAEA@AKAM@@CC@AECCDCD@BCA@BCAKB@BGCAFAB@HICADCKCDEB@ABDBBATD@AD@JMIADISCBACAADGACBK@SGDCAAEFOAACC@@AU@AIDA@QACQCCABGC@E@ABAABCIE@BECFEECJGNMGABC@EG@CAICAFGDKA@AGCQABCYABCBCA@DIEB@KB@@AI@@AAA@AI@C@@FEFALGB@DCBEDEFIFQFAAEBAA@CE@@AE@@DI@@DC@AFE@CD@DGFDDA@@HD@AHUBC@@CGHAHEJ@PDRANI@IB@BABM@AAGACBG@GAAAC@@DC@@FDDBFEFGA@FI@@EG@EDBNI@ALF@AFJ@@JIBE@MPANKA@DEFM@@CIAAEA@@DC@@CGA@CGAAGCCWA@DQAA@ACKA@JwBUGIDDDKDFFJCDFBNKD@RBBJCBBB@@FEAGB@BIBHJQB@JDPGHDFDCFIZAAJE@@DRBAFEAB@MAIRNFIJ@B@BCBDBCBJDCDHBCDADF@@DHB@BAPCFCBAHBBFB@DG@AFF@BDKF@BD@BAF@FCBBBHDDFCT@TAD@@DF@@EHCBETBGGPA@FNA@ABB@LF@AFBLLLE@AHT@\\VC@BBEHADC@ABJR@HJ@ARY@@JCDH@FBFLCBADD@@BC@ABDBAHD@@JE@DBAFB@ABTCKRBDHABLADH@@DEJDJLANGCNA`CRBFAB@DKAAF@BLBBFH@@FAHKLIEMHFHMHGB]BOH"],"encodeOffsets":[[119394,40978]]},"properties":{"cp":[116.658603,39.902486],"name":"通州区","childNum":1}},{"id":"110113","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@C@@AIA@ICIG@CCcVDDAFI@JEA@IFC@ILGFWHEFAB@BJD@BDDCFB@BBABvb@GB@BIB@@LJBD[AAB@B@BGAGACB@DDBQD@HC@BD@AJF@EFADLBLm"],["@@MDW@CHC@@DE@@HAA@DE@@BK@@CE@@AC@@EGB@BE@AEIDBEE@AHOFACABEKMGGAADGA@BCADMCA@HCB@BI@ABEACBIA@AA@@DC@AHE@ADABGEGFAHCAICMCBAC@EHEABAG@ABC@@BIA@HC@@BG@@HGAKnD@@ADBBDAL@@A@AXB@@BA@EZD@@DA@ALC@@JA@CJ@ABGA@BKE@@E_CC^ABA@AHC@BEA@BQHguaA@AAAD@DABIIIFKLIFIBUAGDIJGFY@CDC@@BSDEHEBEFDDH@FDD@FBFAD@NJBLD@ALEJ@HCDC`EBCHBDH@DFHADPKD@BCBMACDJVDADJJLCF@NEJYRD`FHN@@FEPBTJBLJJAD@FJBHB@@DJ@@EX@@AF@@FBBV@JLAHABCJHCLB@ABBH@BCJDL@FD@EACL@AGLA@BNAFC@DB@DBFIJ@@FHCACDA@EHEAIDAJDVCBDB@@PF@@BH@J@DEB@@BF@@AD@@ALB@DPB@BLAJB@CDEA@BGFCBIC@@C@EEGD@@EHB@FBB@AB@DI@BLANNB@JFCDDFHDDADD@LLAzzDCCGB@BBB@ACB@BBZG@ALGBB@@@CDAAAB@BBD@DDDACCFADFRH@FB@@HDABFB@BFA@@BBLB@BEFCBB@BHAFDJC@AHA@HB@AIDA@AN@FA@@@BGBND@B@D@DDFBJFB@BCHHFDDFBXBDCHKACHQDCX@@QFKDCAA@EACFEFABE@CJG@GDCDEDADKLABABAIAACC@@CJADCL@BIBCJCDDPCDF@FBBDBFFHADCBCFCAE@CAABAACBECCGDIA@ADEDE@CDEDEAABADBBGB@@DF@FAFE@GG@@G@ADGH@@EL@@BJ@AENQHMLIGKAEEECG@MECLECKFIHEEMC@ACCANE@ACB@ADA@AJA@EDB@EG@FE@GBAM@FCD@DDBAF@CCD@CGAGC@CKKBCADCE@@BEBACGBAC@@AED@@OC@_S@N@@@GA@AHA@ECABBBE@@BF@@DEAADE@CFC@BGA@ADA@BCC@AGIA@AAACJAAAHK@@BMKSA@CCDMAEBIGIA@@E@MPIBDDOFAEcA@EQC@MC@@MBECB@CI@@DE@@DACOBEEUHBDS@EC@KCA@A@ECICE"]],"encodeOffsets":[[[119409,40992]],[[119575,40975]]]},"properties":{"cp":[116.653525,40.128936],"name":"顺义区","childNum":2}},{"id":"110114","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@G@ACABCICBAAABCGA@IDA@CD@ACACBAA@AEC@@BC@ABEA@CC@MDI@@BI@cKKA@CCABEE@BIB@@AB@AEECSCCJG@IBG@ABEA@FI@@DC@CLJB@HDBBABB@AFBABJDAHAB@CEBI@ABA@BDC@O@@EK@KABCCAADE@BGI@BIE@CHKAGEABCAONIC@DGAEDECYnUGMZBBADOA@FCAADJB@DEB@D@DABBDAB@BIBACDEACCAIFMAGD@DFHCJF@@FB@B^Y@cNA@EEEBGF@LCHANQACGA@OD@A@EEE@GKEMCBMDEBGG@DC@CaEg@AME@CD]CGDEBGCCBADA@CFEAGA@@IBCCCCECGBAMCAAEMCAGKECC@CEACG@CC@GCKBGIEFSOIB@DMDCBEAMFCBCAKBOCEA@CE@KEAD@DABBBAFGHCHDD@HBF@BGAC@AE@CIHBBC@MDA@DFFBAD@DCBCHC@MRGDEHCBGFIBEFAAKBECEFg@EFGDAAEBKJE@KAEBBJGJ@BCB@BFBABABCACBAFFDFHDHDFKHLFBDTEL@DD@DBB@DFBBNDDF@HHEF@DDBCJB@B@FJFFBFLJBDADHAJCJBDBBJDDAD@BLJD@BBD@HFHBD@NCDBH@B@@DF@P@FBDDBFFDCBDFDABDB@BFFADB@DFFADCB@JF@EJ@DADB@@DD@FFD@B@HBEJC@CDA@CBE@EDBFALCBDBHBHFFBBBB@FFF@B@DCFADBBFF@DHD@BBHAFBLKBED@@IJQF@J@DBDHJ@DAJD@DD@BDAFC@ADJFABDD@DFDJ@FBHDF@B@@ABAD@FCFILBNCNDJA@ED@HG@EBAJMHAFBHADB@BF@HF@BCF@DCDBHADDFHFGBEAADDFFBCDABBBDDD@D@BADMCAAEBAJBDB@FFBADBBCFEDIDDJBDCBBFNDF@DFD@DADBF@DFFBBAFBFEHDBBH@BDBBDAFBJ@DDL@BBABDDBDDBB@FAJBJADCBCDEJFJ@DDHC@EBAHF@FDBABDBFBBADCD@DBH@DBXMNJBBABBBAD@DAFDFBAD@@AD@AED@AGHBFDVDPCF@BAFAJCFGD@LG@ADAD@FCJ@DEFCAAC@DAAAEBG@DAGE@INBBBHD@CFBLEEKCADEBA@CDAAC@CACBCCCC@@CLFJ@AFBBHBBAHDDCFBD@LGFDBAFAFBB@BCLCFCJBDBHCL@HHFCAEFGBCF@BABADCJE@AACEACIEAAECABAHABEACDCAABCAIDAFBBADDF@FCBBJE@ADAPABCHC@OHELEH@HBJA@AC@@CA@AGEIC@IBKIIAASFO@EM@EGC_ZQFI@MDEIKCICBIUDCNBDA@ALCCOGBCEG@ACDGFAD_DC@GFIBI@AC@@ICCOGEBEAC@ECG@CCFE"],"encodeOffsets":[[119263,41053]]},"properties":{"cp":[116.235906,40.218085],"name":"昌平区","childNum":1}},{"id":"110115","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BAH@@CEAAABGDADEBO@AGA@CE@BCDCGADCICDACADA@A@AJIMEJQNBA@FBBEQA@CF@BIYBEJCDCEHGCO@IRAGIJA@AHAFB@EA@AAIDAA@QLCAMCEIDEELCCCJCVHxA@ILBBDB@RB@CXBDDBHHB@DHB@DD@@CB@BFJB@DN@FE@CLBBMNOF@JA@II@BEE@BKJ@AMFCH@@FJ@@EHBFEAECC@ED@@CD@BBHBH@DAHBBBN@BA@AJAJ@BMCQ@QFGBGHG@DD@VABGC@@GB@CCHE@CEA@CK@ACICCDEA@FIADMB@BEC@@@HEF@HCBEB@@BDAB@@CFA@@E@HA@AD@BEAFDE@F@@BICAAFA@BEAB@AEABAA@CBEA@AGA@@K@EBADA@CHC@ENIG@DG@@ACAAFA@@AA@@BSD@DI@E@AAGAA@BCEAAA@BG@@HA@BGEAAFE@AF@AGA@DE@@IMA@BIB@BE@@JG@@NG@AJGB@JK@@CE@BEGAB@CA@BC@AFBCADECADKDF@K@@GUB@AE@@GD@@CB@@ABAGADEC@BEA@BAIA@AIA@AGABAIA@AG@A@AFD@@DAFCABAEABA@@BEA@@GABIB@BIB@DE@@CEA@CEABEC@BGB@@EAACA@GL@DIOABCE@BEOABEC@@EC@@GA@BIIAEBIA@AC@@BG@@FOA@BQ@@BC@DID@BAAA@CB@DCBGEADEAA@BG@@@A@@AE@AA@CG@@GIA@DK@@CY@GABED@BECABEF@@EBEUEAFOAANDB@BA@@JC@ADS@@BM@DBABG@BE@UFA@AD@ACD@@CJ@BEHBJSG@CACOCB@CCABAA@BETDJHFME@@BCA@A@AD@BEB@@BJBABD@ADB@@BB@@BF@BAH@@GD@CBF@DE@KA@BIJOFB@CCEC@CA@GKA@AE@@AI@EESHUDIDQAGDGBGC]BK@@BI@@FAAUBAEIBADE@IBOHEFAFGDAD@FKHAHKH@DCFE@SDMBABBBC@AGE@GJM@OHEBAJCFCDOJADDFED@DFB@DDFABCABHC@BDBHCN@BADDBEFFDBDABE@CLK@DF@DOEA@CDIVHLBNGFBFADADEN@LBLADBNG^DJ@HLVCLJJADGD@BT\\DL@FDHCBABHHBDFDJHDHADFHADBDCD@FEJBDFBBFHDBJAHDJCRBFADBDCH@VJB@FF@DCBED@TJ\\DDGJDDCICBEFBB@AAHSA@DED@BCCADCDADCH@@DNXH@@PBH@FH@DFXBBJL@AATABIT@DKE@DG@KF@@BP@BKLA@BLBB_NBA^AHA@@DrB@DB@@JL@@ADB@RI@@DB@@DA@@BCDE@@CA@ADCFICA@BLD@@ABA@BFAF@AHB@@BAB@DGDBJJEB@@FH@@DJ@@AN@@EH@BDHECAAEBCRDBA@BRKBELBJIVFBHH@@DF@@DBCD@@EDBBAHB@BF@ABC@NF@DD@AHF@BFVABEL@@CF@"],"encodeOffsets":[[119332,40781]]},"properties":{"cp":[116.338033,39.728908],"name":"大兴区","childNum":1}},{"id":"110116","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@A@@BABGBDBFF@DBDA@ADFDBDEJBDEBF@@DDCFBDF@D@BCF@FED@FADDDADCBDD@DDDADDBAFHD@FDCDB@DBDBDBBFFKDCFIJAF@DCB@FLDNAJLH@DHD@LJJAFBLCLDFABAVFL@FCHBLCDCACFGAACBDCCA@CD@@ADAD@DAJBEA@AB@BGEB@CDCF@AADBBCDADDA@BBFBABJB@DJDF@DAHDDAB@DCD@JCN@PHP@AAD@@AHB@DDDAD@BBBPCFCTALBBAD@BCHARDP@HJFBDDD@@LMJCFEBAFKFAFABAFK@IEIAEBCACBADA@EDG@CBEHLLHLFDDDHDBHHJ@FRBFBDHBDLDDJ@DDFH@FHBFJDCFFEDBBFHJDBAJJF@DABA@DDEFB@ADBFD@BDADDB@DBB@DBD@DHDPCJBB@D@DDFADAFAFDDH@JSBABC@GFC@ADE@@DAD@BIDAHIFG@@GA@ADG@@BE@@FQDDD@DEBAF@FGBKBADGGABE@GDEAABE@GJLZHBHHH@DBBDCDAFBDFBDFEJAFDB@BF@BDBDBDATDBBFDDODCDEB@HB@@LCJICGHKDCDADEFCAEBGAEDE@BDKPBLCD@LEDG@CBBDABGFKFADBB@FABCBAJUDG@KHADKDEFANCDCJEFMJCH@FGBIBADEDEHEBIHAHCDCBADMFIFCFC@EH@DCDKF@DBH@DARHFDJDDLFDDT@DHFB@DLBLGDEDAAEDEFCBKLOJEBEDEL@RKLFJANDLIXBDBTADADET@@DDDDFCDBDENALILALKBBJMRAHMHDHDJDDCLDD@FDD@HB@DBLFFCBAHADCBAFBFDD@FDPIF@PCH@HAH@FFBHJAFBLHDFNDJEP@HBDJD@LCJGBAHCHGFAFEF@PC^PDH@HDPED@DDJ@DDD@DFF@FBDCDBB@J@BABEHGB@D@FBHBBDH@FCBRDLLLABBHEFDHABAD@HCDE@CHCJELADBHGLAFDHBDGAEHGBEAEBEFGGMEACADEACIICAAA@KA@BIAGFEGCAECCAILKHC@IDABIACHAHKJEBIJCJBAEFEF@JCIKCICC@GH@NG@CDA@EHEL@DCDBHEF@HEJ@HAAG@GBAFANFFIJ@FABEJIHABELEBEAGDA@ABCFAAKBEDAD@FFDFDBP@BCDC@CDAD@HBHABBHEP@BENALM@AACLCFCH@D@BEHCDEAABEAGACDAHABACACCEAC@@BGBCECCEA@BC@ECBABA@EDABCMCABCAAEKAAGAASECBA@CCBABCBGD@BEE@BCCA@AECCECCE@E@EACDI@GAEEM@OFABEBAFGFCIAABCBCDKDC@GDADKAOBCAC@C@EECBCAC@CAECAG@ABEAEFIAIHMACEKCAGIAMGKAGC@CACC@IE@CE@CE@ABC@A@CACBEECCEFSAAAMDEEA@CAAMG@AACBCHCA@BE@EC@EBCCAADED@BEFADEBCEGDCD@DA@CEEFEECHIACBCDABSICAECCO@EDECCBK@KCACFGQBCAE@@ABAC@CCBCBADB@DFBJ@DDCGFCDA@@R@VGDCCCBEHI@AFCFAJIIEAKC@EACEGC@ECK@EBCAA@CIEAEBCFABCNGKBEDC@@KDCA@BCAGBCFDDGHCDEFAPAABBBDBHCAA@E@@ABC@DCCABEAAFAB@@CD@BEGCHAACGFIBDEF@BEBAAUFKPDF@ECNEBBB@AA@AWII@AGGA@CAAEAGFCABAF@@CACB@MGDA@AD@@HF@@GACB@CEDAAAHAEEKGAGHCHEL@CMRAAIF@CSA@@CC@AIP@@E@AZHBKNDD@BAA@JA@GD@AEH@@CJ@E@@CHIACJ@@ABB@CA@@BSIKOEBQUAAB@EGA@EG@ByyKB@KCCCBGCCEDCIEA@MMKB@ACJA@@BAA@EGA@FC@FH@F@DD@AJEDAHB@CF@DIAKB@AOA@CKA@BC@@BE@@AA@CFI@G@@AE@@OA@ACUDICCBBJGF@FCBBDGD@EI@EJCAA@@CEDMB@AKBBHK@BD@FECK@ICADG@AA@BKAGDDIBABGIKU@AA@EE@@BW@@FE@@BIBGAG@KFGF@PGDADOBCB@BIFAAEDE@CCABEACBBJADBBCDBDAFGBABDBBFFBDJFBBD@BIFCDABABE@ADEHBFEDGGK@GDCAIAEDKDADA@EAEBABECKHC@EACDGCABGAAABEI@KE@DD@DDADBD@DBDCB@DABCFDBFLKFEA@DGCAAMA@JHFCBH@FABBCBD@BBEDCFI@EDC@CB@BKHC@EHIDEBABE@ODUCECGABHC@BFC@@BC@ABAA"],"encodeOffsets":[[119081,41362]]},"properties":{"cp":[116.637122,40.324272],"name":"怀柔区","childNum":1}},{"id":"110117","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@GDEH@DDFADBLABEFABCDIF@DAAEBA@EDKBEHGACDAL@DAHABAAEAACEDEAE@CFGAKVKF@DEHE@EBA@CAA@CAA@EDCBEPBBCJBDBF@DFBA@FF@@@H@FBDFFBFG@GDI@ODEAEDC@CFECSFGDK@CF@FEBEHBLFL@DBFCDBDCFAD@HEJBDCBA@CBCKAK@CCE@B@AADCAIF@@CBCD@BBD@DCHA@AEAEBICBB@BABAACE@CBA@ABCF@B@@AAAACBEH@BDDBDA@AJHDCD@FEFAAACA@CGBIGICFCAAO@ABCACDDGAACBEFC@E@AACA@AAA@BAB@CE@BDD@CBBBCB@CCA@AB@@AAAEDA@G@C@ACDA@CJI@EFGAAC@AAIGCCH@B@CCCAAAN@AGACADC@EICAEAIBCAMA@FCBC@EHIEGBABCAIC@IAAAECEKG@EA@CBC@EDG@CACEC@AEEABIEEGBADCFMDIA@DC@@BGBGGGBGCCGMGAGGCBCACKDM@@KFC@AAADAGACCC@GE@EJ@ACCC@EIACCABBDIBCDAHCH@BBBIF@A@AGEBCHC@ACA@EGC@BIB@BC@ABEBID@AEBIDHEGKQGI@GCG@MDEFKHCCEDOAEDBBECDFEBEAAAW@@KC@AGC@@HQAC@BGMABAE@ACKB@CEB@ID@ACCA@AMAABICKMKGDII@BGE@AFEA@AG@@DE@@CUA@FOHMDO@MCCDBB@HD@@BA@CHGAAHC@@PC@BF@@BDHABDFA@AF@CDDBLADLD@BHDHC@DDE@ABCCC@EDN@AB@HEFH@@FCA@FIB@BCB@BDA@BMFDBBDD@FNGFEJDLKFFD@NDHFFBFHLKJGNMRBFI@@AK@@FG@CH@B@HH@@HEFEBE@@CA@AHCAABBBCFCF@DCFCF@BJBHCDDAFBDABBB@DBFEDADCBDFJ@BBB@DBBDJBDAFEF@LJ@BFBBBJHBDBFGFEDOCEFGDEDADJJB@HHDB@DJFFBDDAFHFH@JFP@ABD@CDDBBABDBCBBF@D@BDD@@HC@@DBBDDDBBFFBAHCDAD@JFBDLFBBHDBDDDFLBJADBH@BDJ@F@BBFAFGHBD@FHFDN@@DHFD@NDFDBDHBBFFDHBDCNCBCDADBFADBLBFFF@DDRDBDD@DF@DNB@FDC@BB@ADB@VEDBBDDAJDF@DBABH@RAH@NEN@NHHCD@"],"encodeOffsets":[[120038,41345]]},"properties":{"cp":[117.112335,40.144783],"name":"平谷区","childNum":1}},{"id":"110118","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@DENABAAIAABGAG@ACDC@BEF@HGL@bEHA@AEC@ALYCEE@@AFK@CJ@HEBAJABE@IBCRKH@BCHA@CFAHGCI@@FABCPABCDAPBFCZIFCNALDBAP@HEHFBFJBFDVAFDL@FALBHCJFJAPFBBNBFBF@FBBABEFC@ABCJBF@H@HCF@FCH@NDHCLADDD@DDFAD@PKHBBFBBDCPBHCLBFAD@FEN@BC^KDGNG^FFDD@NIJKJCBAACBAFAJEvCF@DAFBLDJBFDD@BBAFDDFDBDdBJDFBHFNALFFDJADBF@ZFHAJBFCJ@NGHFFC@EDEH@DBL@@AJ@PEHBDBD@DBJBBDFCVEHEBADANIJG@IGAOCFKEECCBC@EAAS@IEADM@EJBHGBAFGD@AE@EDDB@BA@Q@IABANC@AEBCCDIA@ACBEAIGCBC@AMBACCAO@BDEBFBGFBDADBBCBC@GEAKHI@IAAGCEKCA@CCEDGFCBGFCAEFQFAHA@GQMGBCBCACDG@GFCCAEOEEEAEC@ABE@CDG@CD@DE@ABBBE@@DEBAFG@KD@BE@CDADCCCBE@MECCIAGFMC@BABE@AAC@IGCAACGCACCBGCMAOIE@CBIAGCKIECC@CCEA@CBA@C@ACAAAJGDIBGFEFKFCAGE@IDOEEFIDCAACE@GEIBMDICAID@KM@GHCJ@VYCE@EDEHEJAAGA@CCFKHCH@FELC@ILEJAB@ECEGMIAEGAEICBCEKEBEBA@EDGCEBEFEBGG@AGOGAE@AACBAEGC@GDMGM@MFG@QBG@BACAE@ICCBACCAUFA@BCA@@ACD@EMA@CCEC@ACQCCCE@EEKACAEBCACBADMDCDGAECAEGAACECMCC@GE@CM@ECEGC@GAEHEBAAE@I@ACG@CAIBKACECCCAAGEACKEA@IBCDCBGEAAECACCAA@CD@@GC@ACC@E@AAADACABCADCC@BAO@IEG@GEBECCEAIE@CCAGGA@IIBCFCHCFEPDJEDCCIIGAAEA@AKIE@EFM@ACEACAG@CCGBEECAAA@ECEODCCIDADAJK@CDIB@DD@BDJBABABKBCLCBCFCD@HIH@DAFEBEFBD@FBBCDEL@RW@CDGRBDGLCDWAEACCGEDG@AEAAICE@C@C@AMCHA@A@@EBM@@BCBBJA@@GGB@BIDECGB@AAAEDAFA@AK@AB@AEA@AECB@GA@@EQGCEEBDDCBCCC@AAA@BBCB@D@@AAKH@BYHAAA@BDA@AAA@DHCBFHB@FHA@BBRVFALPTJ@AB@@DK@BDGJ@DF@I@@DG@BFC@@HIBB@ABC@MCALYG@B@FO@BJD@@DB@DTE@BJQBDNK@GFGDBHLHFFGBBBCBDFA@BD@HE@@GC@@BCBNHA@BD@DE@ABDBHEFBBB@DHBBHJ@XJ@BBBA@AAMFFDE@OCELBVABAFE@CFJAHEBDGBHDAFC@@DA@EBBBAFDBCDD@BA@@@FBBGDCAAABAOBEBCFGDCHECADBHADB@CD@LD@FCLAMHADEBADBFJF@DBBAD@FDL@FHDDFFBD@BLJFIJEBED@BGJAFDDCDCBEBKDQ@@@CBEDDHCCI@EA@CCAABABDFD@AB@BF@DBRAEHBDLDL@DAFDFCP@DDBFJDATCBADBDGJFDEFFF@DCBC@CDFHADCFEBAFC@CFBBDDFAD@@FAFB@GDADBD@BNHBB@DFBCFBNBBETDFFDAFBD@D@BAD@BDFF@@DJFD@BD@DHDLBNHJBBHLDDFNBJGJBFEFBBAH@DBBF@DBDADFD@F@DBDADBPCLCB@HCDCLADADBBDJHEBEFABAPEN@FFHBJ@DCFBF@F@DDDFFD@BDBADF@AFC@AHADABDDB@DATFBBBHLBBFDBBANDADCB@FABABFDD@@AFBDDDFHA@AD@FBDDDB"],"encodeOffsets":[[119693,41781]]},"properties":{"cp":[116.843352,40.377362],"name":"密云区","childNum":1}},{"id":"110119","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@F@FCHBFADBFEBCDCLCHGJDDI@KA@@GFADCPCCCAECABSACACACE@@ACABEFICEEAACBEDCACCAG@GGGACKEG@AACBCFEF@BAFBHCF@BAHHBCNABAD@AEDEFA@CCCRC@EF@@AH@BC@@BHH@JEBGJC@ABC@CF@BCD@HED@BATA@ICGECEBCBEBCCC@A@IAODGC@CAC@CAA@CCABCACC@AEBCA@FECCB@BA@CIEBICAGIAECAEFDEICAEEGG@CE@CCIKCACCGEAQA@EGIAGGCCCECGKKKFGDAH@FCB@BCDADBFAJBJFL@BEBABELEBEFADENI@KC@CCEAGIO@QCGBADC@ABKASBEDODAA@ABCCC@CGA@BC@BBO@OGM@IDC@CDA@CBGCCBE@IC@CIABAEAAAB@CCCBADCABBE@CD@DFAAHA@@BFBIACBC@CB@BC@@DDBCDDABBEHBDCDKDGAEDK@UEABEBKCKDEAIBKIC@CGG@IKMBIAAA@EDA@CBEJIDELCEEAAACAC@CCACD@EGCBECABCCC@CCCDABCCCBC@EFC@EDE@A@CCEEACD@CE@FAACFIACECBCB@AC@CEECAHABA@AB@ACBE@CBCAABAAAMIWNCAG@CAC@EFICBACA@EGEAB@FGDCCI@IECFADCDIBIAEBA@CAACCCBAAAK@CCI@EACBAAACG@AAGCEFEAABEACEE@CACBC@CEE@MCAEDAACCIJCFCDEAABCEA@ECAIAABBFDBCNABC@C@CCAABADCEACEBCFBHAGECEBCAGDC@CDE@AGEE@@AEAEBEAGBINAB@FGHC@@FIBMCMDKAEJEDC@AB@B@@G@GCEAI@CCACCCBAIEBCD@BEACA@ACCAEACBI@CGMAE@AFADEH@JC@AFCBEHABEAGBAAC@CGE@AECAEBCDA@E@EEA@AAEAGEGACADABKAEFCF@DAB@DCD@FIGAA@C@EEC@@CA@BC@CFIE@@IDABCEE@CCAEBAEA@AAC@CECBCFC@CJBBID@FGD@DCFBBADGA@FABBB@FGHAFA@@BDDBB@DBDMDAHEBADEBEA@BGH@BHDBDCDCBAFAFFFGLAHAB@DMDCDaCCDKA@BC@@DIA@DC@@BGC@@EBICCD@BD@@DCCE@ABF@@BG@@@H@GBH@@DE@@BF@@BG@HB@HA@@E@JI@@DMA@AC@CBA@@DEAAHE@AH‘–C@@BB@FBAFO@EJCBGF@ACFA@@AC@CDEA@@BBC@@BBB@BFB@@ADBBADFACFB@CFBBD@FC@BA@ADDFD@@BABGCE@EF@HDHDBFF@HADDHHF@FGDGAKJGBgAAAAEMRJPADFBBHJPJJD@@FEFBDDBHAJDBBBDHJJBDHPJLFJ@HELBLCF@LDDHAJDF@FBDDPDHVFJBFDFCLADBH@HBDBBFJADBLADBFAHFDHDDBDJFHHDBBDDDDAR@RGNBHCNAHCDBJ@HCH@HC@CCENB@ADIDMHIBIFABBL@DBFABD@D@BRABHDDD@FJHF@BCBBBFBHHB@DDBCDDBC@ECEDCHFBBBARDLHPBJFL@HBBBBLDDTJFFTFB@BEF@^BFBBBCFONALABDDLDDDJBBDFFFJB@ABFFD@LADANCTAFB@FFLBLFH@FDH@JCDBDHFDJ@DFF@DJDADLJBHLDPL@DAD@FH@DDFCJFDD@JFHVLADEBBF@F@B@DJH@JAFJDDFHBDFLCDCF@@CDABCF@BEDCFA@KBCFE@ED@DCHFD@FAHBHIJELAHGDB@FCF@FAFJLHDD@DBL@HBFAL@BAJBNELBFDNCFBR@FBBDH@HDDDJAHDDAHDNEDQL@FCNBLAFDH@REHFHBHF"],"encodeOffsets":[[119261,41752]]},"properties":{"cp":[115.985006,40.465325],"name":"延庆区","childNum":1}}],"UTF8Encoding":true} -------------------------------------------------------------------------------- /frontend/public/static/map/province/shanxi.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"id":"140100","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AFWN@BBJADaHWR@DTH\\BDB@NADCDQ@IBCJDJ@FE@WB@DC@O@BLBFPLVT@HAVAFCBOAgGO@Q@SHEHGVEXEFEDQDEBGTKJGBGNGJYLAD@XCP@HFFFPGBABDBBDABOBKFAHGFgHKHELC@KCCB]dA@SEIBGDU@gKKAS@KFOPCHMEgBKC_MO@GFIRENEFG@]GADDPEJMNGL@DEJBJAJKHCD@LDLEFIFMBOEIEGAWD[@WBaCOFCF@JCJEHIHIFGBMFCFCBS@SHABAHBJCBKDKJONALDRCDG@OBMDOAKHMBaIIQGE_BWMI@GHGBC@MGODK@SGaBQEKKG@GHETAL@RADGDQDIFVHRLPDJHBDAFIP@HFLIREBSHEDEHENKLCLAV@DEDCF@\\EHGFABGDCDGLCLAJBJFHNROLGLBFLLAJBDbHHDFFBVXJRJRDpBNBVBPDd\\PHRF^PVBJFPPfbDLEPBFNF`DLHJAJGNBJAHDFNHAHFHBNADBAF@BF@FAHBHBB@EJDFJLHBDBBFFBH@^CN@HD@DCDKDABDLDDF@^IHAFGIeFIJEN@LFDFVCdaP@PEJBHCXSH@JBFLPHJAPFHDTBLJHBF@DIHCTCjQF@NJF@HERED@JG\\FRCJELKHAFCDILGFGJCJFDFhFˆQNBJGHGFCCXBBJDH@JERAJFDDRDHFHRHVFHDL@LCLIDG@EF@LE^EHOJQPILKR@LZJ~NL@BDAFGFI@ULCFAF@HRPZNJPDCXALETCVHLBHGJCRAFAHIVQHMJINC^@ZORAFBHJJD^LJ@LCFEDSLKHUFANANKPDH@ZKJ@NPXFDB@fBBBBJITIDEAGBALAHCBEAEBCFCLABCAKKOJMJGDCJAXCH@PHRCNEP@DBNJNHLNFFFD@HCNC@GN@BDBF@hEHCJCRIHBHAHB@JBBT@LDBATAPGFBHHF@BAHAJ@XF^DlJZXBRFDBFNP`^NHPFVBPFTBTLPAPFTJLJFDTBXDNHLRF@NRJFDABC@OFIHCJ@FDNCNFHD@DFDDFHFFDDD@HDDJDFBFRFHZJFBDDLDTCFFRFDD@FETCDBDD@HFXFTD^B^ELCHIAEEAAEAGFQLOFMAIEKKKDIZU@KMUKIKGACCCSCKBUOE@OFGCEAKAQBECAKOCCI@ECKCCMC@GGEKCM@CGAKAEKEGAKBGCmWKMIAIACECOKGG@ECAIDE@CGIOOACDE@AI@GKCCACFG@G@MCECAKHG@GCCIFG@MDCHADAHGNAbJFABABKAQFMFCHIXQNGF@DGDC`QBCLDHBNADAJ@JCBABMPOHAJAL@BQG@ECGGIC[D]BICMKEENEDALQIAEKKAGAAWEEYAIFCFMNMFE@IGAKCEKIEAIMICeLMA_GKDCDKBG@aMS@EDEHOBMDEJEBC@CGE@IGAGHI@EACIEYKKIKOIGEIQQGG@CBCPKBE@GMCIMAAJO@SNQ@IHKFK@GG@MNWNEBM@SGGCEI@SEEGCEIKCODK@AADO[ACEAMCCKEGGEM@GR[@EMMMGSMMCCC@EHGDGHEBC@WDEFA@CIIQIAWCQKA]AOEAEAILIBA@G@GCECASCAA@GAIMC@A@IFIHCNCDA@KACKEYCQBIAOGAKDWAYFATCHB@CDADMLQFM@GCiLKBIDIZCEKIE[AYGEEAADOCEsLKHYDE@CEAAOBSGU@CAAEBa@QCEAAGAK@MCGAMBGICCOACDMPUDI@GMAACSCEWBGDCDCBG@SEIDCBGPAFDRcDICQBGSBICGCEGCSBEGI@"],"encodeOffsets":[[115027,38358]]},"properties":{"cp":[112.549248,37.857014],"name":"太原市","childNum":1}},{"id":"140200","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@EKIDKCI@OEEMEOUEEBC@IBICC@MCACE@AAACAM@OKEBUE@IFIAEBGCEKeEIQQ[aCOAWDK@OBKBMEODAFALEAGIE@CGCEC@EAC@EAACBGCIDCAGEBAAGSAAEC@A@AMGG@ADCDI@GECGEBCEEBEAGDKDADKLCBEKKCAEISECERIAABCVIJAJBDBDCH@JGHDLABCLGDGCE@CEGBGBCEOGCAECAIFIDKACC@EAABEEQQBC@@CCAC@CDOE}LQQawCMHCDEFOAEBC@EBEAEIICE@AAC@EGIACEG@AEGCA@AEAC@EAQDMCIGEDMDEFGAGFICGE]AQCEBMBK@CCOIO@KAEBOKYMQGMCQBQNIFUDWGQGSCcBKTCP@LGPYLBHKBBBC@GGG@ABA@ABGBOnE^CJOB[GoUKkKKU@cHIDEZK\\AN@ZKZKŠEHDJBDfbPŽ@NDRAJGFIDMJIHI\\UROJML[VIL@VDHDN@FCFKDM@ŸGUFaB]DMDWJMPELGPQPEF_J]FMAQCSCOBcJQL]J}M]KKDKVGJEBQEETIJULoVcXSZCTBNHTGRmlUHKRIXIH[FY@CFAJBLBLCJOP]bOLOHOR@JVTANMN@JFHNNCHD@JHFBCHBBPPBFAJKLBBBB@BEFEFON]PYRaNEDKPGPO\\BFFHV@DBHNH@jlPF`A`RxNILc^KPGFMNGDMAEFKXSB]AGBMNihIBcDMNULgHYFUDMBMEIG[KIIKI_Q_UQEeIe@›HcFaBI@_G_BkAWEI@O@YPG@ECEE@KHK@EEEDA@GDCFANCFAPUFICEKOAGIAQHKHAAASEOUCCASSOCM@KCSEGKBMGIIEOE}AOGKKAMHIWCu@aB[CA_CGICoLOHgNQECOEIGEMGkKGFCJCFIF]LAZFzCP_JIDINGT@HRhFXBZEbG`APJNX\\JPJdDPFLDPF\\HJFLJ^APGFEDE\\QFCDEJAPABEDADEHBB@HVH@DCDGBGFKCIFSDEDAJEF@DVHEDAHEFKBCJFJKPDHHBBBGDAJFFLHVBR@\\BJNANIL[VIRBPLPLFN@HB@PCF@HLARQRGZQFELERMTILKXINMBB`W`ALBJBTF~^^LfJbLHHLVTtLVJ\\HRFTFPBHHN@ZBJDHLF\\HPDFBxPXLxPbDvRhDZFfB‚N°^|LnDJBbNPDJCBCBIBGJKJCNIRWDEJQJ_DIDEFMLONMH@HATFV@fETA^BdHdBˆN˜HŒNnNZTLRLJfZp^VTVNjPHNBLDFJJRH|TŒZPHLFRRZbHP@P`_n_JI\\kJEPAVF`NpddTZX@HFFDFADB@F@BARHRDRBP@`CHIJ@zPTDZFVTHHHJBN@XITSPWLMNKRAHTVBFJLDJDRTf@VDPOtAJFLJLZP`HLBHAXDL@NFHMLKbiPMNQDOFKFGbQNSDK@CJGFI@COIFKH@FEDEFCBGXIT@HDJDH@\\ULGJKBCACKY@ADKEABCEIBECCBALCL@HAHBDCAEDKBEIKMI@ABIASCKGGDGBCGGICBOKICEFMAA@CFGHCRD@GDG@CPEFABABMEEOICG@CPSBMXiJY@EDEJEHAH@dHF@HCDBLGJ@HGPFFAF@DG@IH@BCDAJ@RFNHFHdJPJHBH@JELMDIPKHCTCL@JDPH`CVGJE@QCICO_i_UsqgQiIeMUCg@eJMAMOE[OSCiDKDWDKASYESA[CESEQBUDWAYE‡]QC[HABDF@LM@EBEHGACBEAGBEEEC[EUKJWB@FWDAFQ@QHUHKLILOBQMOGK@WMGOAC@AAMAKCWOKAQP@JBP@DY\\@HEJSJ[HMDSACAGYJMAGFa@CEEE]IOWSGEOGMAcBKCKK@MHKRERLH@TCDEPCdENE^CLEL@DDLADCJBHCJGAYAK@OJMDSZuD@JJFBV@JCNGJIDAH@H@RDPA‚S€GRDJJHFRBJDLRBGHDLI@CA@@ED@DDDC@CE@BCD@DG@CACGBCEMEUKEECGBGDEFCD@BA@AHED@BEHBDABIFKDB@BCD@DFHTBP@RJ\\DJDHHLAHEAIBGCEHAJDDBNDHAFCJBDANHJDPEZ@bHH@D@TBDDJEPBJUC@BMAIRY@AEC@CCCQCCCAEHGFGBUFEBGBADBBEH@CGBGJ@DBBMKUE}ABeCWDONWHG\\kLGN@LBRA`FNA\\ILKBGDCBMBEBA@CBCBGHKDMVBHCBB@FDBDHrTNGFIGOCK@C"],"encodeOffsets":[[117313,40508]]},"properties":{"cp":[113.295259,40.09031],"name":"大同市","childNum":1}},{"id":"140300","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@BWBIDK@KDMZUTQ@MIIKKi]KKQSI[AKGOCODONUNKVMJQCqQsCY@SZWRMJ]JINGLCV@xLV@LANCNIX]JELCPAPDLBLFFDDBD@DEDICMAEBCLENDHBNG@CCCME@GCAOGBALEHCLFDBFCJBT@bCpMT@PHXFLADCBCEGGE@CHEDE@EE@KFCBAIBICQIMKYFEFCL@DA|wDEDKCA@CFGHAXIFEAGGGDGAIHEDE@KIS@GFGCKCASAAAPKFGFAXDFCHANGPSFMPSFMNgPQPCNGJKFIF[N]DSA‡BKFKFILGNAbDREHKBIAKLIXMNIDKBICIEKWO[G_SGICKAQ@QFCGiAIGEOAODOJsZoRUFS@WA[SKKw]‹EWE_MIDEZCHEDOBGDKBWBeCSCGEAEBIEEaAEEGEOAcDOFWVIDOBsIcBUAwFKLCJOP]AkFIVOR]RELMTCN@^AFGH_VIJcpIXIJaVCFEPALFZEHIFeRKHIFEJCPAJBLFZJ\\Ln@TKRGDOHS@KAMBKJCLCHAfCHGJSFM@EDCXOZ@LFFPHBDKZEDIF]FSAICYOIQAGOWSGoBKBGFIJKHGJEJIJQCaSMKAMCCY@KDGCK@C@APGAMDGBOPANABIDI@CBMBGAKCAD_RCDCHE@MHWRGJEDENBRALABEBYIM@GBGHCBGBCD@NEHDJHDH@LGDBDF@N@HEHBDDDHLJ@@BCFBDPPHJ@DCFBJFDH@LHFTBBJBJBLNnXHDLAHBLFBFBLDHN@LDHF@HNDDDDL@FDJPDBLFDRALBFBHDPEF@VPLATDDDBDLHLJNV@LYVCJLLFLBJENKPER@DDHFDHNJBVED@JDVBLA^@HDDFdLPHpVdHNHFFLZHH`PNDbP†TdN^RpRNBJ@pUTCb@^JVJNDd@RDXA"],"encodeOffsets":[[116281,39446]]},"properties":{"cp":[113.583285,37.861188],"name":"阳泉市","childNum":1}},{"id":"140400","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AKKMqJYHQEOKIKKSMQDOTC\\HPFR@BOK__[SYCOHKPKN@`GvCRKBMGaCKHGTCTBNGPSVYBM@KACIKEAC@QFE@QGCCEAGHCBCC@IDAHAHBHGH@BA@EC@CDACBC@I@A@CGK@QCC@KCAIAAE@CBANHHBL@DAJITCDABMBQFKNGp@XELERKLITQVMVExBJQLaNQHODQ@OCS@MAMLSDMIMKMAICAQACAGIFIB[HSBIAEKAAEEAE@AACG@EBGDE@ICGSMSGIACCAC@ECEDCB@NLDBPANCHK@EFKMDCCCAEF@@CEGCBCVQBC@AAACAoKOD@EAASDEA@AJKHE\\EBAJAAEFKB@BBNDH@FABCBANABCGG@ABABC@IFBDCD@D@AGG@EEA@AFA@CEOCGBSAAB@D@BC@CEA@EB@FC@IAI@EC@ANGDCDGDAFBDGBOI@@ADEH@HG@UJMBI@GEEBCJC@C@CCEUEMGMMAOTIrEHIGG[EJIJGJMAGAEOKMAUHgHKAIGAYFMPCAMFMFYBSB[KQWFSHILKNYCKIGQGMDILKBaOMAWFW@KBmZONKHQFUCU@OBKFKDGFKDiHSAICGGWgMK_CQBaHMLGHAHBRDHM\\MJGDWHO@QCKCcQYQQEODKD]fQNGBKAcGQBGRKGeKaOGKCIGAOFe`QDSD@MDMJIROPODQHIJENGHQA_QQAKBIHoKYCi@iDSFGFGL@LLVBHATCNEFGBS@SDWLQDI@MAOIMEK@WJMFyJUHMJUZOFuSMFGN]`GRAHUTUHKJQBcOWA»_SOeDEJBR@JCLKNEJHRHJNHdPVJfRZNHHBHBTCNGPG`BHHJBbAXG\\AXDZLNLfAVE@IA_]GCGA‡HEFwLIFBDERBLFJFDBD@BC@QIGHCFML@DJDBBBFABGBGFBVCNCHEDEBwBkD‘COFITINMDSDMF]PQLWZKJMJQJ›ASPSdO`AFEJOnKjKXOHYHQHGJm^ILO\\KbEDIFOBI@UHIFEHMJCˆKPUTA`EPKNWDI@CTFf@`RPDJAFOPIVOAAB@LJXAFGDAD@\\HPfPFHAJDN@HCHLJLTHVELELFHNHP@^MV@^FNRBDIJMJGJLTNHFHDP@JQP]`ELBNZDRAfB^FTLRGH@HPRJH@THLTLHLDR@^BVDLCJELeHEXMJAdAPELIFIPK`MPKNQFCJAJBFDLPFHJDJBP@\\GfAJCdWbATDLFXXLDNLHBPCNILENCRBRD^NLNFNGZQJ_@SFGNF\\CNIXORWNAJFLDTCbCRMHSFQ@OFIHCLBDXCD@NFFAHBPBLDHFFDH@RELBL@DEAICG@EDAFATBHCDEFWBCD@X@TENA^INAHFDHHFLNJNRF\\B@VHFLBJATINM\\QRAPCTBRENKVUJOAkNC\\DHCDEFMVODGDUJINER@TDPBPEJATYJGJEdCNMDOEUEICMVU@K@QAKKUAKHKZONU`G^FFBLL`VNPRN„jPFVEjANDj@PCPKLC^BDJFFdCZDTGFGB@D@BFGVDH@\\BDD@HCHGHAFDBDBLB@DIJiHAHBTGJ@PDF^@HTCDK@KDCHADB@FBB\\PHJD@BEFEF@DBBLNNHALBLRDNLLJDJBPGNWZad]TUTIGGBCNI@ACUIKIUVCNDLKJITIhGVIPKJGLG\\]TGNANGJGLKJaTiX_JGbK"],"encodeOffsets":[[116269,37627]]},"properties":{"cp":[113.113556,36.191112],"name":"长治市","childNum":1}},{"id":"140500","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@G@CAIBEBQJK@GAKEISESE@M^BPJJAFQ@EBWR@HAFS@CFQHCDIBE\\ADGBE@CAGWC@CPDPABABC@ICIKIECEBI@CBCJCXCHUCCeK_FgCQ@ICAAAMQBSJQLE@SAQCGCC@UNMDIFCAIIKFKFGBG@IGCAƒXWBUFK@IE]]QGQBcCK@IDSCSDG@YGI@A@AFDFDFVhDLEDI@CAQQECkAWEMEcFKBCB@DFFBDGNEB[@SDcP_DmJUGKCAACBCBABCD@BJB@DUDUHMBWEQBODETNDJRDLATILOJABAFDN@BEF]JYDEFAFBPFLHHFfMLQH]DOLURS^CRAbQfGPEDKXETFLDD\\XEjHjKLM@IHC~K`BJXPJLBjJH\\DXF\\R``RLHNJ`EJQRERFN\\RTJLNCTGPGJQRINCPDJFDDJC\\DXFJNFjevWŒ[jEfAfBdJRP@PGV]bE@GDCDEJEFMB[OGPE`EDKBCBARFJJEJAT@RFP@B@FJJFPE`SLAJ@dMP@dLXBVCVGZC`AXJPBbCfE\\B`Rb`hV`RŽ^`NTPFFFXGXApKVTP¼`XBdPRALIVGVSBGHQ^_HMNEvTPEVYNIVGzINEXIL@NFPJNBJ@RCXKTCT@HAFEDMBSAGKU@KHKHETEjCj@ZDpLJGLARB`RRBHGFMJIRGPCPOJQNINCŽ@TCRCf_PEHBDJHLbPfLLHHQRAdHLBHARM^eLCPCRFZRdRLDRDP@XGHCNIN[ESBMHGNKbGRA`DNLXhHHJDTBPA^EHCHEXIPAV@VDRELGPMnYLAR@EG@GDCHABCEG@E@APBJGHADAAEU@EAMCCE@EFCF@LFBOJM@IEUGIKUBMHQTaBIEMMG@EBAVEVKPQBEIGBKBCFCBI@iAAKAKDgA[DEFAFANOACDAFADEREBOGAQLSBQFKBECCKAEACSGIBKAAGCI@EMMKSOMOCO@KDGEOIOTS@ECG]@KJSEMCOAMGGBSGIACBKLMCGFCBYQU@ECCCGQEEKKEIAAGAQ@ECGMECmBCDIPMDaSAC@C^AZIDG@GQCELEHEA@IEGGCCK@IJIFIACAAIBYLMDUAEBAD@DCDQAQRCBI@CFC@GBOCGCSEKDY@CAFA@CAIBKAGCA@CFEAAGBC@BCAGJC@AECDA@AEEABADOFKG@FEDAAAADECCDADA@ABAACBAEAFEDCFHBBBACCF@@AACC@AECAEC@ADA@@GAABIEACDCCCAACHC@BEAQA@CBE@AEACDCAKBOC@C@OC@CFI@AAECCI@KEG@CDYLI@KEIBUFOPEBGHKCMF_LUCOESDC@MHI@AEIEHQACMICCBkAIBAD@BEFK@I@AGMICEBKBKHC@KCQGGCWACE@GFG@CGUGGGEAC_MIBQDQCCEa@UHABAJABGCQFM@]FGAAACKOIMMQAIE@GDEAEACIGGOEGMGOB"],"encodeOffsets":[[115465,36050]]},"properties":{"cp":[112.851274,35.497553],"name":"晋城市","childNum":1}},{"id":"140600","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@@GDE@OGAM@KEKOAOJQ\\UJKBMIM[AQ@UAKGEEBIHCAAGACGLOEIDILAFEBGDC@ASE@EFCBIJENALELDHEHADC@CUG@GAAFGBCFCBABOFIDCREF[FCHEBOI]EKGIE[COEKCOIcIOW[IMBOH_FaAYEWQg@GHSJMJC`IDOEyBY^KJEDEDIHElLNHHFFJDPRFhMPGpKJDDHB`\\DbAv@XDGJBNLLPH~BPFJFHJANHLTFLDN@PDTTDBVDFPBTBBLGRGJBBHLPDFEJOVEBMDEBCD@HCBFF@FGL@LFFFDH@ZOP@J@XFlB`A`HJ@bAdEœGf@fJRF`V`RLJJJ\\LJHNFNAVCZEhGVKNMdCJAjgNMHA^BTALWFENBHCNMHELOd]JKwM_Q_BOEikG@GMCAS@EAAEAEDELUHOFGJIdOZQbQDEHEFEFE@AAAAALKBIAEQQDGEAIGC@DGMMEG@INMBMUS@IPQPGPK^aPODIAKAKBIDEZ@\\EJGJWLQVGnkHQGSAMDSTYdWpUVKJIFSUAEGEKBa@GAC_[WKKWAMEKIKGOSGeDI@G@OGcCGG@MBMEAG@iXICGO]MKGGSECKBWNKLK@SCoFWAQBeCYFK@OAYKiYMCKB¡XKHWHMHSNBJHTBHKDAFeZaBKCEIE@GCaAIAEEAEBIACOMEGIACC@ISGiKoS]GmCeKIEOQAKGOIKKWWOEO@MGMMIiCeGIUAQEKIKECQ@MLEHMPKDI@UGKAQGGAOFO@@CTKFGA_GKOKEAQMWKWI]CWLEAWOIKAIFMGYEGWGWBOAMDGF]CG@MXDNCJIDUAIDGHGPCNKJQBSFS@YCME“sOGWGKBQNQDSBOCaKQAKD_V_LE@CEEAQBEACI@GDKAIQEIAKDEDEJAFBDBBRFHDDDBLCFGDM@eCG@GBCF@HHR@NCD@HNL@DC@IAAB@HAJCHWLKCG@EBE@MGICIAEDADBDLR@HCTCDQFMFBNBFADUN@FFbMZIJQDYLSFaBYCOCMIM]GEGCOFOVENGJENUNIBGNRFNJBDADUJEJCNJNIHGDWFIDGJCHCJ@HHJAF_^ABHRDNAJELEBKDAF@NQRET@NC@C@C@CEEACBIDULMNQFM@MGEAGBCFKBCHEJEPGPMTAF@DDRJHHD^J\\BTFrAhBPFNRuvGF_P[VERCTEHIHD@LXAJMF@FJHFNILMLENBDBD\\TFHHDJBJFHLVhINALDRDLAZ@HFFBNCLCVBRDJLDDDFBLHBFJH\\RLNNVRR@BNJFPDRDFB\\HFHTFFLFLDRRFJJ\\JNLXFFHFVZJJLXPNFHDF@LDNFDFHBNj`HRP@DBBFADLJ@TABABFFBPHFHHRJ@HRP@HLFFJBFFHBDJFHD@DCD@DCBDFEBDJEJ@D@BH@HRAJJFFBFFLBJHNHH@NFBBDHBBVHLPPJENMJXTBJHNFHDLCDN@PDH@JCX@HBNHNJLHVFNF\\XZLLDŽJPCRKDGFCREXKZQ^GL@ZChINIH@jQTAhM"],"encodeOffsets":[[115328,41203]]},"properties":{"cp":[112.433387,39.331261],"name":"朔州市","childNum":1}},{"id":"140700","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@J@FHTAHDDFDHAJHTRAJDdCCQBEHODAJCTFH@DADCHCXADFDTBBHNJ@VCNODCPBDDHJNAHBNDL@HBBBDF@RAbBFDBV@THPABBDFF@ZCLGtKDFCPBBFFZH\\BJFFLYDCJAJKLDj@HENKRCNCB@DGASDEBBZCXBLPHJBRAZDLFBD@LCBMDGDEJ@J@BNDBJ@HBBTDDBDF@H@HABKJBJBFPF^BLBDRBXRJJJ@DEBCF@XADGFCHGH@FDDNDTNNHNN@FQ\\@HFNHHLFDDBNDF\\BCPBBL@PCLDFJHDFF@TFJHDTHN@FAXMNMH@@HELGL@JMR@TIPBBJNND@HAFOLAD@DHHRRFJJHLPLJZLJFBD@FGJBHJHF@DHD@FAFINCPAFGFCT@bNH@LADCLC`HNBfKJDJNFBLJDFBLJHF@NENMDEJEZBFFBXHBLBFLJBKRCBMFFFNLJDJ@pEJDHHFDH@@BL@LDLCZ@DDBNNLbTRDJIFIHILGJIHELApATHPXBHJRZPJDTBRCLAPILYACOGEE@KPYDWFCN@TEHIDGBeDGDKLINALBT@PGHCLQ@SKmI[EYAKBIDOFIJELGfQJEFGEYBKFODEbUJIJWdoJI`UHGBE@]DMNSFK^QPQJUlE^BPODILKxEVBdAtJPAJCXUPEdCPBHFFFbBFFAJBFHFHBbD\\BXCHCPAFCDGFYJC`NXFŒFx^LL\\TXBT@VEpQtYPIPCPBHFBJHjTARR‚P^DLAXIJEHIjIXCPGPMH]COEMG[[aCK@KPeIUY__aQ[kyokQi@YEiCKQUOEQ@[QSSSoE]BQEMOMQCkSWOKMCKB[GaGQGGGMAM@]_[YIIIas@]IOW@OCQMUEM@YGKML{BQGOIIEMEMAIHMNKPEX@DI@YGIUWGQNSZMHKGMQMEKCM]MCIJQHUHIL@FDDA@KIGAI\\oDYEOIIEAG@EDIBACAGJICKE@@HGJA@MACCEOICIACBCF@DCDKB@LBNANEHE@KCC@IFEHOCKEIKCMOQKICUDMP[CIIGEQJQDOOEQ@QC]OYScUUISBOJ[@[GKCKOaLIHW`SjIbKLIHMHMBSH[^KHIHOLUJgHSJIJKLMCUDJVJLDV@BMJADHHSJSVc^YbMXOHIAICKKCMKQKAGBMMAKCAE@EFAFC@GI[OAA@ECAGBCD@LCLSD@GE]OCI@SHGAGBIjCJA@AKACECGBGHGDC@AC@[CGHUAEC@A@EHSHYCcDEECI]AKDOLODi@MCiBUFOEƒiQMMO_UKKEA]E_HMVYPGLBLLVBL@R@LUVDNFJFVCPMNcDIFIHSZIBOFOASCQ@MFIJCVCHUPENCFGD[CMDBlIPUVMLQFSAODQB[RMNSJIBKAGE@U[AQEIMKMGECGGEMB]JMBSFW@C@ADEXCFGDSAEBCB@FDHBJCFK@KAQFG@ECGEKCOAGAEBMEC@WDACDKJGPER@TENGDQDaCSEKBIXMPQJWDME[HMTE`@RIHYEMKM]MQCQAMDKFMJODGAMKKCWWKESCaBcXIDeB[HO@IAICEGKOECIAIBEDMROL_NOLEJKJOFcBIBWNGFKfIFKDUC]AQ@KCKGKSSGG@QIGOG@QHSK]EeAQBYCAMFK^_RO@ICOEGMGKSHINIJIACMQQCKAU@]NO@MGEGFKFKGUKSKIDG@GCMBIEGeOGO@[BCHCBEIW@KBAPBJUPOBECIQO@_EeDSAGKGOCQJMJUNKJ[LODMBMCUD{CaHBGAECEYGG@CBDJJH@FCFQBMIOJWEQEWEgROJGDGAKESCcCSI‰UCMJQPQFSQSGCIBSL]^]TMNePo`QJKNgnIRE\\HLNBDHGJGFADI@@GIAEJGFI@CCAKAECCC@ABADBREBEHERE@EA@GMi]MMAMB[J[R[^MHCTBLANDNL@ANDJH@HDDADCB@`BLFBDDPLPpJDBBLDBZPPBZARDRH\\TPRFBPBRLBDCB[PM@GGC@EBKHG@EDANBVAJCBGDEHKJEHGFM@KTORzPJADACG@MFINGHAHDHFLAHCdWNEXCfODC@MBCJCLAJBBBDZHJFH\\@BBHPD@PGF@DBDFBHCLBJLLTB\\BRDb@DJFHRHTJ‚PVJVHPHDLHFLAJGRIN@RFATPJNDJFTbFBBTHFFLLJNJTFHLJdDhJNDLNRFPEXAhBHDHRJDJEHAF@NEFCBUD@LBFNBN@BED@\\BBB@DHB@BDRDHD@BCBKB@D@DNDBL@DADGZB@FIN@DDFH@FIDKDAN@HDDHBBXFBDAPDPRLNNDHDDPBRBTGBAAOHIHE^CDCDMAQBGVGJGDAFDLH@FFFFDDNRHDJNLBFFHHFRHRLLL@DAFFDVJFDDH@JDHHDRXBJVPPPFNARBZJLXTVNrLR@HFBBFBFT"],"encodeOffsets":[[115027,38358]]},"properties":{"cp":[112.736465,37.696495],"name":"晋中市","childNum":1}},{"id":"140800","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@T]VQPK^CRGNKEeGGEKAKBIFEZC^IFE@ACMBEBAPIJKBSCKIQMCFS@CACEGBAXKFERgBGAUDG@EECUIQOUCKGCE@GBGVYVcHOAGKKBELA@CUAIBGNU@EAOBOAGQWGAGFMABBCJCFKDIFCFAD@FABCBI@EACCEAaHWCEDQRMFODkBCACEEGKIIDQLCBIASOEAgNEC—KKEEE@CDYCQEMMIMAUFE@EC@KCCKI[DKAICEE@ICCkAEBGAMIO@C@OScAGCAE@APMFGDG@MDGDG@EGE[OG@MBOCMOKIIQEBEA@E@MGWCCEAM@WMCGC[AKCGGE@CCCMGGGGAKFCD@FIDKBM@OCKAIEOMMAAGIKIAU@MEI@KBG@YRCBWDAAEGACECQEGBE@KGKKQEGBCAGDSDGBM@MDIFEJCBIBIASOKEMASGWMICOF[RMFE@KEEGSiECQCI@EBCDILGFKBQBWAIDSRGDG@ICMKKKMSMWIeCCGE«I_I]KcQ•sICI@CDW\\MLUJU@IAEGAEDS@_IY[o_gYKoASEYMYAMJONcZeJM@ICECAIIKOKisEEEAiBF—AaG‰_UGMCODULi\\YP]NOBMAKC_cOMIEQAQDyVaJWD›DUDMHSLSRSZO`M^ETDZFVNZLh@`EVIZevETHrdpN^BL@FCFKF@D@PBFHPBD@FEHADBJDLBFDDJBPJP^NTZXXZT\\JTH^H`H^Pfh¾Jf\\ðLdJPJR\\ZRVztHPràFLJH†^LHLNHNFPF\\RzHTv¢\\~BDRLJ€@HInABQDCDAHB^AFCDMHAJGLAJFR@NCP@NH@FD\\NDFHDBDF@FL@FD@F@DDHLDFHZPFTDVATINMFQVBVGDICGWKIO@QJInRrHTFJ@PIJMPGNA`AZGHBT@NENANBHAJAVKfGRK`YNCNBZX`JPJJPBLCDCVAXD^DLC`V`LJPDP[@YHWPQDK@SDOFGN@PFRBZAXBHFF@HNBPZ`N\\V`RXVN^BfQ\\_HMHYHERGJGHSBI@gNWbMbKNETYFKHILANBLFHNb^PHnJTAJEDSAUFEFCHI@QIBiLQ@KAECEAOACEDIJKHSACCCSGAAHEBCAGGEE@GFOFKGA[AAAGB[P[PQDGEIICIKDGpeLAJA\\FZLFJFHXHLAJGHDTFDHFDX@ZJLJB@@GBEVK\\JJAH@HC„LpP\\@`EnMZUF@XJAXDTJLHHJNBP@RBVDRDJLLBL’MZN@FLBHDJAFECO@EDAZBdFTBREZYVORSPGVC”MZHbEP@AEIGQEKKEICU@IDEJIDEPAR@HEZCJBF@FAFEJ@HCJBDADA@@AC@ABAAI@AIAAABMSOCGACC@KLEBKCCDeIAICCBG@AIGCE@KDGSACGAKFI@GFIAICCG@CCBECCIBCACEAGMAACDIR@DAD@LJFBF@FMHAFE@IFGBGAYRAHKzG^@vHRAPFTTRVLP@R"],"encodeOffsets":[[114662,36282]]},"properties":{"cp":[111.003957,35.022778],"name":"运城市","childNum":1}},{"id":"140900","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@JGFGDSFQ\\U`OHEvuMQOEgAqBSE[A]IGCIGCQ@CBENSHOFOJQLADEBALBNHN@RENMVKJCDAFBDFD@D@D@@MFSRQ@MBELCFAFKBICMGQBA`]BEGI@GDIDGHIJCXEHCJGIMDMFIVIBCACMIQEHMJAVMFMHIFMPUPEHDHFN^NJPDZDbATEZKRCJINYEa@EVMBCAEAMNEREDCDS@GKQACBCFCJBJDNHF@FAH@LDXKDGBI@GBAJBD@@CMK@GDC@MGQ@GDEHAH@fDN@HCDEAKCCGCQECEBEFIFCLCJBRFBJCL@HDJFBRAFBDFF@`K`ULCRBbLPDTARCRMLAXHPH”tNFZDT@TERALIDMHOHGJCVBJCDICMNWH@^DHENCPBXAXHFHHZENBJJLXPFBXK^DXJXLRNFBPLHLB`EHSL@DP@PEHBRHLBVHJ@LCNOFGNKR@FDJLFLBRJVfHjDNJHN@NFPXPLXJLHPBLPRJFfLnD^HpTjLTH@JDDJBFHPNBDAJBFFFJBbBHDF@FJLDbAfYBELCAGGSAITMNGXGLG¢WLANDjZZLPBL@ZEfDRAXBpETDL@LKXMLAFDHTLH^NHPJDjWH@FBAN@NHHdDPHH@J@fCTHHPJLFLBNLXXL`\\BD@HAbHRDBVBRFFAHILULC^L~N^IRKdIPATDRDNB^E`IFEROHOFKNOXINC€EVE HN@LCDE@ECMCG@UJK\\UNKPIVQJ[JGNIJCHEBICQ@MOeaACCIFGL‰LY@YBML[FYYMKMISIMEOS@mJSEEMAMKMOG[SUQ_SomgAGBMEOaCUJsF]BM@wNOPKDKFILKNIRGVEPAj[DUGO[OGKAQ@QHS@USCWD]JMIYmEOIeGGQGc@MLSJQBMGCIAKF_@gGOOGUEoCiD]HQAUKEOKmBQHKEQEKMKMIIEcKIQAM@cEQEGWBQCc@MCUI]Ia@SDoVI@MAoQ]QcM…SaOMC_OGGKYEEMGcGoUOGcKCEGC]@KBUAICC@UFIAEGGJEBcH]ASCWEGEC@ACDCFS@ECCQEEESDKCCCEAYIEGEQEAICCC@GCCECGECEEC@CGCMEMDECI@GDEJ@PADCBIEMQE@KQMGWCSAECKISIOEOBSKSAOEUAOEMG_]MOAEECAQYWkI]CWEI@GBABE@GGEAOHSBABKCS@AA@IGAGBGAQJIDGDgFE@CA@AHMD@DM@GECEEKMMGMICAO@MFQDOGG@WDIBCDIHINLPBLADKBEDADBFAFGDKBABBHCFSJIJAAAA@eCAWEMOI@YLG@OCMLMBEBGVKLCTEFKDI@]KICGIEAQBYP]@MDIJGNURGJEBQBIDGHKAUGSDKFWBCDIOYMQO@GBEDEVKJ@HEBEACK@}MYI@KLQJKROPIFGF]@KFEH@JCDK@KCKEGGUGQGEQCCCIEQBIFG@ICAADWEDGHIHMA‡RgECEIEIDEHKHCJEDGBKLIFQD[EIHC@QFGFE@MIE@iRSDGDCJE@GAKISAGCOEIBOGEKIAG@WTGDIAOFO@cbUDCEKEM@IFEJJfEHGB]JE@CCCKBALCDC@CGCM@]DG@EAYPEVCFSFWRCLANARDZCRDDXBfLH@RGVDHDPJADBZADYJGFEPDLHNKXDPOLOBIFKLKDED@DBJHJ@FGHCH@DCDENBDTNFF@JEDAFAFDD@FKLKFaZKL}nKLBHBHJFTNNFND`PCVKZWlUZIB]NSAEEQaIMQOOGcKWCeOeIIIQG_U]UMGOCIBWJIJOPKBGAKKCI@KDA@YEUWTIJeX[\\GNEX@XCJBJEDIFKB…D]AUDMNGB[LCJDRCFO@WGgCYGQ@UBEDGHa|CNBR@LAHCFcLGHCLAP@TIjKRCHQJ_B‡KKCMG_WOC‡_SE_WWMSEQIY@IBGFSXINEDUB_CSFGHADBJDJNL@D@H@LCFON\\bFLHHAJEHIJALBDFFLFPBLHJPJT@LP\\RPHJBH@HAFY\\CJBBFDLFPLHLBLALELCNB\\ALAHQ\\IZCDSJCBELDLbjXLdXVH^D\\@\\FRDJF^XNHnfLTDLBPCPBFBDXJHHLXDNHP@HEHIHEF@HVj\\`PhTTCLTLHNDL@DGJCHBLFRNRFNHFLDHFHLFD@DK@_@KAM@_LSNKPEJ@DDFZRBJGHEDG@WIEEAIAACAGAEBEDCFBHHZ@JGLCBI@WCUAKFAHBHRR^lDDbJPNJFLANEN@XDNFFBDAPGdCFBTBJDJB^ELGH@FBFD\\DbCXB^JNLFNDPBVAJ@JRX`ZpRF@H@JBFDJJ@FFR@FGPMLAF@FHPNXDN@VBHJT@FCJQTAF@FBDHFL@FAFCLUHCD@FBDHB\\ADMDO@IDIN@LRA^HlV^J^DT@rSV@F@FEJKDChDNCXMVEN@LPFBZDLER@^MNEPAZMHCRUNIbEXKVE\\@LID@H@RLNDLLLFB@FDJJB@DFRHNB\\MN@NATMBFJHHBFCNJF@VED@BDH@FEFCFADD"],"encodeOffsets":[[114617,40563]]},"properties":{"cp":[112.733538,38.41769],"name":"忻州市","childNum":1}},{"id":"141000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@NG\\]\\Q\\INANB^NNj@HFBF@FQFGFAAQBCBAD@DDBFBLDDJ@HEFIJB@HJ@BCHEHICGMAGKF[JQhmLMRIp_fONM^S^]TKJAHDRTETORIRDNŠVTJdDTDLFHBHCPIhQXFRFXFPINJRADE@EIGCIDAH@ZHDFBFAHbG|DVCNDNAPC\\KLIVMNIRIPDLHBHJ@XCLMFOB_VSLOD‡NIFGJEVGJ@PAJEFCLaP[JKn]HIRGZGPGLWLiPmFIBE^yFITOœBRINILIXYRK^ONETCNCJMJSPE’DlCxAFAFCDGDMAUHEHABAAEAAIC@CNKDEHGRJD@@AACECEIAKFQACJExKFEˆGHBHD`^JBF@BUKeKMCYBWH[BWAaGIAGH_HODMASAGGGYMeQUI[KUKGIGQFILMDK@IAQFIfCLUBoHWEWEESO_M]_QgUa__Q[AeFaDOAWI_BYDUHUDWAcKO@cNI@KB_TOFIEEIA@O@QES@IBIFEIBQDALAFCF_HO\\PNAFEFIDCHCF@^aHU@OQOcIeAeBiF‹\\uXifMEEICWD[CIECCIDOJMRQHIHODSKMSI[QEMFQRQFII_GMQK__[QWE[CIGAiIKWOAIL_D}JGN@LKGiFi[WIOFSLWFCHOReBaDQ@Q]eSSOEQBuG]@yHGLQBBZAHEH@JEFGBENE@EAKIC@CBQ@CH@BBDNBBHDFDBJADDAFDDH@DDBJEJ@HEJBLDHTBCH@LDFJH@BAHDDBJfJDCLDFALKD@BDDHTPANBBJB@BBJAB@BBDCBCBIAGDI@EFEBE@IAYDGFQ@OBCFIJCF@JDVFJLLRFJHBFO@aFYG“NUDOHQTUPYZQFSAcEYACB@FDPEFIBGCKA@EYM‘NAKKKCICQAU@QAOIMGGIKCSBWOEMCYVmN_F[@oOƒKGDG@IB[IULAF@HA@KIYIW@ECCGSEGCIHKBWGEGEIYK[EIBKBofCHJLJDFJCHORO\\A\\BHBBB\\LHPEHEF@HFBHADGFBBTHDDBDGTILCJDFPBFBFDLBR@jKJA@RGJEDEFBVCTIFSBmIOGa]GMKEMAKBGJELSZMFaLaNMX@hAJGTIHQHGFGZGN[`OJUH]AUMQWU_M[Y_AOGME@GEWAYBQAOEM@EHCP@TCLORGX@ZO\\OCKIU_D_CKC]BWDUDCAKIOOI_IYWMAMD_ZQLeHULIBGBMAMBMFS@GAYH_BMBOHINOJI@SEqGmQIJ@RJPXLDHCJUHUAERMNSJUBSCOEGYCEGKCCE@C@@EEKE@ACGCCE[MECG@Cb@T@HCFQXAF@FBHHHDJ@PAJENGNOJEHCF@HANB^BT@DCDMDIAOEE@UDID@D@DDFDV@FCRDLDNAFCFMNADENAJDHHFJDDDD\\EHGDOFGDITAFLRBHGPCNAXIVKPENIJKT@DFPATSVCFI^GZ@TEhFVP^DJ@J@HKPAH@HDJbhFJFR@HCPBVADMTADBLHJDJEJKJIRAH@HDJLPDHATBPPPTb@LBJH\\@J@HCFYTGR@JDFFHdZJLDJBHAPBVCRB`ALCFSVAFBPFPJNBDCJCBOF_TcdKPc€GJGH_NOJIHCHAH@HDHNHF@L@FCFELOFENCFBFBDJ@HERAJBHDH^`BLEHEBMAKIGMGEIAKDAD@D@DDFTNJJBHCJKLGFMDMBeBEBABCLDDLBVEJDJLRdH\\@H@FGFOBEBABAFDFNDHFHNB\\AHGFWLMB[@GBGDCBEH@DDFFD\\@LBFBNLDPHANCJGLOD@F@HDHFFBDAJEJBDANMDIJ@HDRFTAHAJID@T@NCTCJQDCDADD@FAF@DXJD@BAHKHAHBFGB@\\HRBBHNHR@PCRAPJDJ@FNRAN@`FPJJJHFDN@RCP@^DLDN@LGDGDOFS†ONEFEPiPONGPAJBHAVILA^BJD^HfPdFDVFD^FZHHLLL^EhOPBLDLHFH@BKT@PDFDBHAJCFE@OHK@AEGGAAA@A@EBA^DBDAJD@DBDBBBCF@JZ@@B@BFDBFHADB@JTAzFDGFE@ELEFG@CACKAEC@AACAGAODEACOGACCMASCCAQHAHEVMDGPGH@DFF@F@NGB@LJNDNHLAJAN@F@HED@NBJDHHF@BAAEHCBCEGBKCEBGFC@CFCNKLKFYFOBWHsRMR@LNRTJBbARDFC@IDGEICIBAZAHDLCP@DBLFFGLC@FHB@B@HCL@FLFB@BCHEFAfHBF@BIDABJLD@JCDBBFCFADDHVHHF^XhP"],"encodeOffsets":[[114089,37688]]},"properties":{"cp":[111.517973,36.08415],"name":"临汾市","childNum":1}},{"id":"141100","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@AECAGAIKCEFIA@GAGAEBE@@ABECAMBGAGEGBEMGCIBMAIHIBKG_CMEAEFQCIeaOOIEUA]OQEOGc[OCUAMAoAQCQIWIAUEEGCaGACBIKKAEHKPKMQEGAIBIDKHKDCHCBAHEFG@[DEFC@CBUDKLKFMFGFCTGFAJQEK@GJOBEACIGOCQKUGJERCHCBC@QDODOHGB@HBJJRFbATHL@PCNHD@HAHGJ@XN`AHFJRbJNALGPBNCPAH@DCCQBKPMLILCDAAIBGBATGT@DADENEHAJEJGFGDI@IDEPEbDXA\\@XCHBJFPFNAJEFECK@KDCLGBIAIFI@CHKNMFICOBC^HH@FEFMJQHEP@`NLDhANFDGPOLET@LBhLV@HCJATFB@^cDALDD@FKLGhGHEBGLEPABAACCABAHAEOEE@GDO@WBCZKHIHMHALIHSFARCFCFEFWHUFGTGR@P@hHPBDABEBU@GUSOKAEAKP@D@@CXAF@@ECIDIJAR@DCBC@MCA[ASG@CXQbGBCAI@AXMBEEQ@AEAAAGEQ@qKUMWSIKAYBQEMOOUOAIQWGCCG@ICGECUIECBE@CKKQKQGGEEGAEMKCIMECCCIKK@EQKCBIHUHAHBRCNCD]DGFGJBPABSHQAOACCCGMMQKCOBOACWEAACGGCM@CBCLEJG@CE@CJM@EYACHCBK@CACMC@A@ALADC@CGCQ@AGA@CAA[AC@AFM@MAAE@KVCDAFE@MBEFGCIQICGAGBgFWEOMQCKIMCgIcGKSEMIKIEKGEASEASaIEMCOIBSQEM@QJIHKBGECKOGUGUIOSIQGEGCIa@QC[ASAKKAIDKAGCECAE@OHC@GOAA[@EGGICYAAIAKBIDAD@NCDePWDMFcXGDKBGEGCGBMHEJ@NDHCBIByOPQLSN@HEFGLIFGHCDABIAUBMFCH@LGFAD@HHN@\\ODAACQKOAEAOQ[SQGQCYBOAYOCAAKCAoIKOCOACKE_AA@CDCBGCG@CIBMK@CMBMAKDSgO]WGEUGCGBCDEAECAIDC@IKBAJC@AAEeGEBGFADA@KE@EDK@G@AGA@CAAIDEHKECAO@KDGCYBABDJFJCH@JEDQCaBIAQSKMQ@QNGtAXEPEZKLMLED@DEDAHDFALFHADGDBFABE@GGICMAC@GFE@M@IBKBMGMCKIA@MHE@E@CEG@OHCHUNGFE@ABBRDDBTDNBDPHBDCFBPBHBD@BFDLBBD@DEHKF@FEFCHyESB@ICAGBAEEC@A@AY@@IDEAACACAC@BIAC]CAB@F@BBBHBFH@BGL@PEFIDGBCACE@OLS@AEGKGKCOAgP]FKKGKYG]EECCUcEeO]GIC]AKBUJGBIAOBMHOPOjEFMF…PETCPCHKHM@KC]CO@QDM@ECIGIIEO@_BMMQ@ECIOIQBODQ@MGAGQA[GA@EHGAGBGLABC@WI@CBE@ECCCBCDIRCBOBMDS@C@IJGBSBQEGCI@CJMNCBIAIFCBEAGEGCE@C@KPIHMDGBALDVHdDJJNDJBN@FENKTGNGJEFGB[JKJIPAJBFFDFD\\BLALAHC\\ULCR@NFDFBHADEFEBgDMHAFBHHHRFLB\\ALBJDNLT^VTFJPTRLhRFFHJDFCbBNDFHHpbZXPP~ˆb^P^VRFNBRDLDFHFfAFBJDDF@H@JUXCJ@FBF`PJNDLBHCHIFYHODM@_DUFMLGNAVBRBNP^FbDJHFLDHBrBPDxFJDdBJBHDDDHTHNBF@HCPDdLTLNBHCZBDRJLHHLJJBHAHelGJ@HBZCTAFEHELAFBJDHDDPBR@HDJFHPAHYTQRKFQDkFKFiRKJEN@LHLRJ†NPRBLGJg^UJUF…Z]VINA\\QfW\\GDADBHEFCHIHepKbMTKHMFMJ]DYH]RGDKHGLCJ@LBJRXDF@FCHKTEDSHGJEV@L@HDPJT@L@LCNKV@PBJflBJALSbCNAR@ZBTBNHPHJNLRDhELBNHDFDVAV@NLlAZBTHPNNNFTBŽEZBRFPJNTRZdbJHLDfDXFHDHHDHBFANFVHNTVJ^H^FJLHTHdANCHAJGVKJ@JBjVHDFF@FGVAJDfGP@P@BTLF@JAR@LBJJDH@JDJ@NAJCL@RBDRRDLAJQ@WHCDENBDAFY^AH@PLNDJL`DHZNJHDFBFAFEJCN@NDJFHLJJHLBLJNTPMDE@K@G@CMKCIAIBCHGTE`DVAFCJMTWHEJAZ@RJTFXN`XTFˆ`PD`XNHLDˆL`ARIDGLQJi@SBODKHGdKDEBG@KAQDMb{HGFCVAR@ZHhDXHP@DECQDI\\KHANMVC^B†CLAJEFCAIDI@WFWHM\\[fWJIXSFV@ZCB@LDJLLHBLAPOJIXIJAPDNH^V`VRHJJfJfPXDdLPHRPJNRbFFTB^MJAVYXkLYDU_OMCMESMIEAGAGLK~mLKbYLELK@ECCBEBEFC@IEESMACFMDC@CDGHG@EGIAI@CFCLCLKJEPAPKCOLWGMCKFOHEZIBCAYBCOIGCUCQHG@eKWACCDQCYBQBMDKXQTEDEFUZO"],"encodeOffsets":[[114502,39132]]},"properties":{"cp":[111.134335,37.524366],"name":"吕梁市","childNum":1}}],"UTF8Encoding":true} --------------------------------------------------------------------------------